Merge branch '1.9.x' into dev

Conflicts:
	src/Orchard/Mvc/Html/HtmlHelperExtensions.cs
	src/Orchard/Mvc/MvcModule.cs
	src/Orchard/Mvc/Routes/RouteExtensions.cs
	src/Orchard/Mvc/ViewEngines/IViewEngineProvider.cs
	src/Orchard/Mvc/ViewEngines/Razor/RazorViewEngineProvider.cs
	src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs
	src/Orchard/Mvc/ViewEngines/ThemeAwareness/ThemeAwareViewEngine.cs
	src/Orchard/Mvc/ViewPage.cs
	src/Orchard/Mvc/ViewUserControl.cs
	src/Orchard/Orchard.Framework.csproj
	src/Orchard/Recipes/Models/Recipe.cs
	src/Orchard/Recipes/Models/RecipeJournal.cs
	src/Orchard/Recipes/Models/RecipeStep.cs
	src/Orchard/Recipes/Services/IRecipeHarvester.cs
	src/Orchard/Recipes/Services/IRecipeJournal.cs
	src/Orchard/Recipes/Services/IRecipeParser.cs
	src/Orchard/Security/IMembershipService.cs
	src/Orchard/Security/Providers/FormsAuthenticationService.cs
	src/Orchard/Security/SecurityFilter.cs
	src/Orchard/Tasks/BackgroundService.cs
	src/Orchard/UI/Notify/NotifyFilter.cs
	src/Orchard/UI/Resources/MetaEntry.cs
	src/Orchard/Utility/Extensions/StringExtensions.cs
	src/Orchard/Validation/Argument.cs
	src/Orchard/Validation/JetBrains.Annotations.cs
	src/Orchard/WebApi/DefaultOrchardWebApiHttpHttpControllerActivator.cs
	src/Orchard/WorkContext.cs
	src/Tools/Orchard/HostContext/CommandHostContextProvider.cs
This commit is contained in:
Lombiq
2015-12-09 00:38:35 +01:00
26 changed files with 3952 additions and 3936 deletions

View File

@@ -33,7 +33,7 @@ namespace Orchard.Layouts.Services {
var drivers = GetFieldDrivers(field.FieldDefinition.Name);
drivers.Invoke(driver => {
var result = driver.BuildDisplayShape(context);
var result = Filter(driver.BuildDisplayShape(context), field);
if (result != null)
result.Apply(context);
}, Logger);
@@ -67,6 +67,21 @@ namespace Orchard.Layouts.Services {
return context.Shape;
}
private DriverResult Filter(DriverResult driverResult, ContentField field) {
DriverResult result = null;
var combinedResult = driverResult as CombinedResult;
var contentShapeResult = driverResult as ContentShapeResult;
if (combinedResult != null) {
result = combinedResult.GetResults().SingleOrDefault(x => x.ContentField != null && x.ContentField.Name == field.Name);
}
else if (contentShapeResult != null) {
result = contentShapeResult.ContentField != null && contentShapeResult.ContentField.Name == field.Name ? contentShapeResult : driverResult;
}
return result;
}
private IEnumerable<IContentFieldDriver> GetFieldDrivers(string fieldName) {
return _contentFieldDrivers.Where(x => x.GetType().BaseType.GenericTypeArguments[0].Name == fieldName);
}