2016-09-18 7 views

Antwort

1

Es sieht nicht wie die Layout-Form hat aus der Box wechselt ein:

Wenn Sie zum nächsten ein wenig nach unten scrollen, Zone dann werden Sie sehen Sie, dass es einen OnDisplaying() Event-Handler hat, der Alternates am Ende hinzufügt.

Ich bin mir nicht sicher, ob es einen eingebauten Trick gibt, der das unterstützt, von dem ich nichts weiß. Angenommen, es gibt kein spezielles Gehäuse von "Layout", von dem ich auch nichts weiß, könnten Sie Ihr eigenes IShapeTableProvider machen, das in einigen Alternativen Ihren Anforderungen hinzufügt.

Es scheint a tutorial over on Bertrands blog zu sein, die einige Ideen erklärt, wie Sie dies tun können.

In den Kommentaren erwähnt es auch, dass Sie die Url Alternates-Funktion des Shape Tracers aktivieren können, die Ihnen dabei helfen könnte, dies zu sortieren.

+0

Danke, große Führer. –

0

Hier ist ein exemple für einen alternante Provider Content basierend Layout:

public class LayoutAlternateProvider : ContentHandler 
{ 
    string contentType; 
    private readonly IWorkContextAccessor _workContextAccessor; 

    protected override void BuildDisplayShape(BuildDisplayContext context) 
    { 
     if (context.DisplayType == "Detail" && !IsWidget(context.ContentItem)) 
     { 
      context.Layout.Metadata.Alternates.Add("Layout__" + context.ContentItem.ContentType); 
     } 
    } 

    private static bool IsWidget(ContentItem item) 
    { 
     return item.TypeDefinition.Settings.Any(setting => setting.Key == "Stereotype" && setting.Value == "Widget"); 
    } 
}