2017-10-11 5 views
0

Ich habe gerade angefangen, Umbraco zu verwenden und finde es ein wenig verwirrend mit der Terminologie - ich habe es geschafft, Seiten zu erstellen und Vorlagen für Fußzeile und Navigation zu erstellen. Was ich jedoch erreichen möchte, ist, einen benutzerdefinierten Abschnitt hinzuzufügen, den der Endbenutzer einfach mehrmals auf einer Seite hinzufügen kann, der Parameter wie Hintergrundfarbe, Titel, Absatz, Bild, Bildausrichtung und Textausrichtung enthält.So erstellen Sie wiederholbare Inhaltsabschnitte

Ich lese Dinge wie Makros und versuche, Youtube-Videos zu sehen, aber nicht zu finden, was mir die richtige Richtung gibt, dies zu implementieren. Ich gehe davon aus, dass ein Makro der richtige Weg ist. Ich brauche es nur für einen Nicht-Entwickler einfach zu sein und in der Lage zu sein, einen Abschnitt hinzuzufügen/zu entfernen/zu bearbeiten. Ich hoffe auch, dass diese Methode auch auf mehreren Seiten möglich ist.

Antwort

1

Es gibt eine Reihe von Optionen für wiederholbare Abschnitte in Umbraco. Die Hauptleitung, die in einem gebaut wird, ist das Gitter. Mit dem Raster können Sie verknüpfbare Blöcke erstellen und konfigurieren, die Sie auf einer Seite verwenden können, z. B. einen Titelblock, einen Bildblock usw. Im Lieferumfang wird Bootstrap-Markup verwendet. Sie können dies jedoch ändern, wenn Sie möchten. Weitere Details zum Raster finden Sie hier: https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout

Als nächstes folgen die Plugin-Optionen. Die zwei wichtigsten für was Sie suchen sind geschachtelte Inhalte (die jetzt ein Teil des Kerns in der späten Version von Umbraco ist): https://our.umbraco.org/projects/backoffice-extensions/nested-content/ Dies funktioniert ein bisschen wie das Raster, außer dass Sie DocTypes erstellen, um Ihre Blöcke von Inhalten darzustellen, und Sie müssen Ihre eigenen Ansichtsvorlagen von Grund auf neu schreiben.

Ähnlich wie Nested Content, aber auch etwas anders, ist Stacked Content: https://github.com/umco/umbraco-stacked-content Dies ist ähnlich wie verschachtelte Inhalte in denen Sie Ihre eigenen Ansichten usw. schreiben müssen

+0

Ich entdeckte Archetype, der ähnlich ist, was ich erreichen musste - aber das ist ideal, da Archetype die Entwicklung eingestellt hat. – Sparkz

1

wenn Sie nur suchen, ein paar Dinge auf einer ‚Vorlage‘ zu ändern, die jede Seite nutzen würde, würde ich empfehlen die Verwendung eines Master Template machen. Dadurch können Sie die Eigenschaften aus der Basisdatei erben und eigene Eigenschaften in der untergeordneten Vorlage hinzufügen, die die Basis überschreiben würde. Beachten Sie, dass Sie mehrere Mastervorlagen auf einer einzelnen Site haben können. Ich habe zum Beispiel einige Seiten, auf denen ich das Banner nicht anzeigen möchte, daher verwende ich eine zweite Vorlage für diese Seiten.

Der Nachteil der Verwendung von Vorlagenvorlagen ist jedoch, dass der Administrator Zugriff auf die Templates (unter der Settings Abschnitt) benötigt, um Änderungen vorzunehmen.

Wenn Sie möchten, dass ein Administrator auswählen kann, welche "Teiltöne" auf der Seite enthalten sind, suchen Sie nach dem Multinode Treepicker. Auf diese Weise können Sie auswählen, welche Knoten auf der Seite angezeigt werden sollen, direkt aus dem Bereich Content (was für Administratoren viel sicherer ist). Beachten Sie, dass es veraltet ist, aber immer noch in Umbraco 7 verfügbar ist (und was ich persönlich benutze).

Der Multinode-Treepicker kann entweder einzelne Knoten auswählen, die unter bestimmten Umständen angezeigt werden sollen, oder Schleife über alle ausgewählten Knoten durch den Administrator im Bereich Content.

Dies kann getan werden, entweder getippt:

@{ 
    var typedMultiNodeTreePicker = Model.Content.GetPropertyValue<IEnumerable<IPublishedContent>>("banner"); 
    foreach (var item in typedMultiNodeTreePicker) 
    { 
     <p>@item.Name</p> 
    } 
} 

Oder dynamisch:

@{ 
    var bannerList = CurrentPage.banner.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
    var bannerCollection = Umbraco.Content(bannerList); 
    foreach (var item in bannerCollection) 
    { 
     <p>@item.Name</p> 
    } 
} 

hoffe, das hilft! :)

Verwandte Themen