mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-27 04:19:04 +08:00
Merge branch '1.9.x' into dev
Conflicts: src/Orchard.Web/Modules/Orchard.Autoroute/Drivers/AutoroutePartDriver.cs src/Orchard.Web/Modules/Orchard.Autoroute/Migrations.cs src/Orchard.Web/Modules/Orchard.Search/Drivers/AdminSearchSettingsPartDriver.cs src/Orchard/Environment/DefaultOrchardShell.cs src/Orchard/Mvc/HttpContextAccessor.cs src/Orchard/Orchard.Framework.csproj src/Orchard/Tasks/BackgroundService.cs
This commit is contained in:
@@ -140,6 +140,11 @@ namespace Orchard.Layouts.Drivers {
|
||||
}
|
||||
|
||||
protected override void Importing(LayoutPart part, ImportContentContext context) {
|
||||
// Don't do anything if the tag is not specified.
|
||||
if (context.Data.Element(part.PartDefinition.Name) == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
context.ImportChildEl(part.PartDefinition.Name, "LayoutData", s => {
|
||||
part.LayoutData = s;
|
||||
_layoutManager.Importing(new ImportLayoutContext {
|
||||
|
||||
@@ -290,11 +290,11 @@ namespace Orchard.Layouts.Drivers {
|
||||
var query = element.QueryId != null ? _contentManager.Get<QueryPart>(element.QueryId.Value) : default(QueryPart);
|
||||
var layout = query != null && element.LayoutId != null ? _layoutRepository.Get(element.LayoutId.Value) : default(LayoutRecord);
|
||||
var queryIdentity = query != null ? _contentManager.GetItemMetadata(query).Identity.ToString() : default(string);
|
||||
var layoutIndex = layout != null ? query.Layouts.IndexOf(layout) : default(int?);
|
||||
var layoutIndex = layout != null ? query.Layouts.IndexOf(layout) : -1; // -1 is the Default Layout.
|
||||
|
||||
if (queryIdentity != null && layoutIndex != null) {
|
||||
if (queryIdentity != null) {
|
||||
context.ExportableData["QueryId"] = queryIdentity;
|
||||
context.ExportableData["LayoutIndex"] = layoutIndex.Value.ToString();
|
||||
context.ExportableData["LayoutIndex"] = layoutIndex.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ namespace Orchard.Layouts.Handlers {
|
||||
private readonly IContentPartDisplay _contentPartDisplay;
|
||||
private readonly IShapeDisplay _shapeDisplay;
|
||||
private readonly ILayoutSerializer _serializer;
|
||||
private readonly IStaticHttpContextScopeFactory _staticHttpContextScopeFactory;
|
||||
private readonly IAliasService _aliasService;
|
||||
|
||||
public LayoutPartHandler(
|
||||
@@ -26,7 +25,6 @@ namespace Orchard.Layouts.Handlers {
|
||||
IContentPartDisplay contentPartDisplay,
|
||||
IShapeDisplay shapeDisplay,
|
||||
ILayoutSerializer serializer,
|
||||
IStaticHttpContextScopeFactory staticHttpContextScopeFactory,
|
||||
IAliasService aliasService) {
|
||||
|
||||
_layoutManager = layoutManager;
|
||||
@@ -34,7 +32,6 @@ namespace Orchard.Layouts.Handlers {
|
||||
_contentPartDisplay = contentPartDisplay;
|
||||
_shapeDisplay = shapeDisplay;
|
||||
_serializer = serializer;
|
||||
_staticHttpContextScopeFactory = staticHttpContextScopeFactory;
|
||||
_aliasService = aliasService;
|
||||
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
@@ -44,22 +41,13 @@ namespace Orchard.Layouts.Handlers {
|
||||
|
||||
private void IndexLayout(IndexContentContext context, LayoutPart part) {
|
||||
var layoutShape = _contentPartDisplay.BuildDisplay(part);
|
||||
var layoutHtml = RenderShape(layoutShape);
|
||||
var layoutHtml = _shapeDisplay.Display(layoutShape);
|
||||
|
||||
context.DocumentIndex
|
||||
.Add("body", layoutHtml).RemoveTags().Analyze()
|
||||
.Add("format", "html").Store();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method of rendering is safe even in background tasks.
|
||||
/// </summary>
|
||||
private string RenderShape(dynamic shape) {
|
||||
using (_staticHttpContextScopeFactory.CreateStaticScope()) {
|
||||
return _shapeDisplay.Display(shape);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateTemplateClients(PublishContentContext context, LayoutPart part) {
|
||||
UpdateTemplateClients(part);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user