Seitenvorlagen – statisch page-templates-static
Eine Vorlage wird verwendet, um eine Seite zu erstellen, und definiert, welche Komponenten im ausgewählten Bereich verwendet werden können. Eine Vorlage ist eine Hierarchie von Knoten, die dieselbe Struktur wie die zu erstellende Seite aufweisen, jedoch keinen tatsächlichen Inhalt haben.
Jede Vorlage stellt Ihnen eine Auswahl an Komponenten zur Verfügung, die Sie verwenden können.
- Vorlagen bestehen aus Komponenten;
- Komponenten verwenden Widgets und ermöglichen den Zugriff auf Widgets und diese werden zum Rendern des Inhalts verwendet.
Eigenschaften und untergeordnete Knoten einer Vorlage properties-and-child-nodes-of-a-template
Eine Vorlage ist ein Knoten des Typs cq:Template und hat die folgenden Eigenschaften und untergeordneten Knoten:
Eine Vorlage ist die Basis einer Seite.
Um eine Seite zu erstellen, müssen Sie die Vorlage (Knotenbaumstruktur /apps/<myapp>/template/<mytemplate>
) an die entsprechende Stelle in der Website-Baumstruktur kopieren: Dies geschieht, wenn eine Seite über die Registerkarte Websites erstellt wird.
Durch diese Kopieraktion erhält die Seite auch ihren anfänglichen Inhalt (normalerweise nur Inhalte der obersten Ebene) und die Eigenschaft sling:resourceType, den Pfad zur Seitenkomponente, die zum Rendern der Seite verwendet wird (alles im untergeordneten Knoten jcr:content).
Strukturierung von Vorlagen how-templates-are-structured
Zwei Aspekte sind zu berücksichtigen:
- die Struktur der Vorlage selbst
- die Struktur des Inhalts, der bei Verwendung einer Vorlage erzeugt wird
Die Struktur einer Vorlage the-structure-of-a-template
Eine Vorlage wird unter einem Knoten des Typs cq:Template.
Verschiedene Eigenschaften können festgelegt werden, insbesondere:
- jcr:title - Titel der Vorlage; wird beim Erstellen einer Seite im Dialogfeld angezeigt.
- jcr:description - Beschreibung der Vorlage; wird beim Erstellen einer Seite im Dialogfeld angezeigt.
Dieser Knoten enthält einen Knoten jcr:content (cq:PageContent) , der als Grundlage für den Inhaltsknoten der resultierenden Seiten verwendet wird. Dadurch wird mithilfe von sling:resourceType die Komponente referenziert, die zum Rendern des tatsächlichen Inhalts einer neuen Seite verwendet werden soll.
Mit dieser Komponente wird die Struktur und das Design des Inhalts definiert, wenn eine neue Seite erstellt wird.
Der von einer Vorlage erstellte Inhalt the-content-produced-by-a-template
Mit Vorlagen werden Seiten des Typs cq:Page
erstellt (wie bereits erwähnt, ist eine Seite eine besondere Art der Komponente). Jede AEM-Seite weist den strukturierten Knoten jcr:content
auf. Dies:
- vom Typ cq:PageContent
- ist ein strukturierter Knotentyp, der eine definierte Inhaltsdefinition enthält
- weist die Eigenschaft
sling:resourceType
auf, die auf die Komponente verweist, welche die Sling-Skripte zum Rendern des Inhalts enthält
Standardvorlagen default-templates
AEM enthält eine Reihe von Standardvorlagen, die standardmäßig verfügbar sind. In einigen Fällen können Sie die Vorlagen unverändert verwenden. In diesem Fall müssen Sie sicherstellen, dass die Vorlage für Ihre Website verfügbar ist.
Beispielsweise enthält AEM mehrere Vorlagen, darunter eine Inhaltsseite und eine Homepage.
Anzeigen von Standardvorlagen displaying-default-templates
Um eine Liste aller Vorlagen im Repository anzuzeigen, gehen Sie wie folgt vor:
-
Öffnen Sie in CRXDE Lite die Instrumente Menü und klicken Sie auf Abfrage.
-
Im Tab Abfrage
-
As Typ auswählen XPath.
-
Geben Sie in das Feld Abfrage folgende Zeichenfolge ein:
//element(*, cq:Template)
-
Klicken Sie auf Ausführen. Die Liste wird im Ergebnisfeld angezeigt.
In den meisten Fällen nehmen Sie eine vorhandene Vorlage und entwickeln eine neue für Ihre eigene Verwendung. Siehe Entwickeln von Seitenvorlagen für weitere Informationen.
Damit eine vorhandene Vorlage für Ihre Website aktiviert und im Dialogfeld Seite erstellen angezeigt wird, wenn Sie eine Seite direkt unter Websites in der Websites-Konsole erstellen, legen Sie für die Eigenschaft „allowedPaths“ des Vorlagenknotens folgenden Wert fest: /content(https://experienceleague.adobe.com/.*?lang=de)?
Anwenden von Vorlagendesigns how-template-designs-are-applied
Wenn Stile in der Benutzeroberfläche im Designmodus definiert werden, wird das Design am genauen Pfad des Inhaltsknotens, für den der Stil definiert wird, beibehalten.
Wenn Entwürfe nur im Designmodus angewendet werden, sind die folgenden Abschnitte, Auflösung des Designpfads, Entscheidungsbaum und das Beispiel, nicht anwendbar.
Auflösung des Designpfads design-path-resolution
Beim Rendern von Inhalten, die auf einer statischen Vorlage basieren, versucht AEM, das relevanteste Design und die relevantesten Stile auf den Inhalt anzuwenden, basierend auf einer Umkehrung der Inhaltshierarchie.
AEM bestimmt den relevantesten Stil für einen Inhaltsknoten in der folgenden Reihenfolge:
- Wenn ein Design für den vollständigen und genauen Pfad des Inhaltsknotens vorhanden ist (wie bei der Definition des Designs im Designmodus), verwende dieses Design.
- Wenn ein Design für den Inhaltsknoten des übergeordneten Elements vorhanden ist, verwenden dieses Design.
- Wenn sich ein Design für einen Knoten im Pfad des Inhaltsknotens befindet, verwende dieses Design.
Wenn es in den letzten beiden Fällen mehr als ein geeignetes Design gibt, verwende das Design, das dem Inhaltsknoten am nächsten ist.
Entscheidungsbaum decision-tree
Dies ist eine grafische Darstellung der Logik der Auflösung des Designpfads.
Beispiel example
Denken Sie an eine einfache Inhaltsstruktur wie die folgende, bei der ein Design auf jeden der Knoten angewendet werden könnte:
/root/branch/leaf
In der folgenden Tabelle wird beschrieben, wie AEM ein Design auswählt.
Entwickeln von Seitenvorlagen developing-page-templates
AEM Seitenvorlagen sind einfach Modelle, die zum Erstellen neuer Seiten verwendet werden. Sie können so wenig oder so viel anfänglichen Inhalt wie nötig enthalten. Ihre Rolle besteht darin, die richtigen anfänglichen Knotenstrukturen zu erstellen, wobei die erforderlichen Eigenschaften (hauptsächlich sling:resourceType) so eingestellt sind, dass sie die Bearbeitung und Wiedergabe ermöglichen.
Erstellen einer neuen Vorlage (basierend auf einer vorhandenen Vorlage) creating-a-new-template-based-on-an-existing-template
Selbstverständlich kann eine neue Vorlage komplett neu erstellt werden. Oft wird jedoch eine vorhandene Vorlage kopiert und aktualisiert, um Ihnen Zeit und Mühe zu sparen. Beispielsweise können die Vorlagen in Geometrixx für die ersten Schritte verwendet werden.
So erstellen Sie eine neue Vorlage basierend auf einer vorhandenen Vorlage:
-
Kopieren Sie eine vorhandene Vorlage (vorzugsweise mit einer Definition, die dem, was Sie erreichen möchten, möglichst ähnlich ist) in einen neuen Knoten.
Vorlagen sind in der Regel im Verzeichnis /apps/<website-name>/templates/<template-name> gespeichert.
note note NOTE Die Liste der verfügbaren Vorlagen hängt vom Speicherort der neuen Seite und den in den einzelnen Vorlagen angegebenen Platzierungsbeschränkungen ab. Siehe Formularverfügbarkeit. -
Ändern Sie die jcr:title des neuen Vorlagenknotens, um dessen neue Rolle widerzuspiegeln. Sie können auch die jcr:description gegebenenfalls. Stellen Sie sicher, dass Sie die Vorlagenverfügbarkeit der Seite entsprechend ändern.
note note NOTE Damit Ihre Vorlage im Dialogfeld Seite erstellen angezeigt wird, wenn Sie eine Seite direkt unter Websites in der Websites-Konsole erstellen, legen Sie für die Eigenschaft allowedPaths
folgenden Wert fest:/content(/.*)?
-
Kopieren Sie die Komponente, auf der die Vorlage basiert (dies wird durch die Variable sling:resourceType -Eigenschaft der jcr:content -Knoten in der Vorlage), um eine neue Instanz zu erstellen.
Komponenten sind in der Regel im Verzeichnis /apps/<website-name>/components/<component-name> gespeichert.
-
Aktualisieren Sie die jcr:title und jcr:description der neuen Komponente.
-
Ersetzen Sie thumbnail.png , wenn ein neues Miniaturbild in der Vorlagenauswahlliste angezeigt werden soll (Größe 128 x 98 Pixel).
-
Aktualisieren Sie die sling:resourceType der Vorlage jcr:content -Knoten, um auf die neue Komponente zu verweisen.
-
Nehmen Sie alle weiteren Änderungen an der Funktionalität oder dem Design der Vorlage und/oder der zugrunde liegenden Komponente vor.
note note NOTE Änderungen, die am Knoten /apps/<website>/templates/<template-name> vorgenommen werden, wirken sich auf die Vorlageninstanz aus (wie in der Auswahlliste).
Änderungen, die am Knoten /apps/<website>/components/<component-name> vorgenommen werden, wirken sich auf die Inhaltsseite aus, die mit der Vorlage erstellt wird.Jetzt können Sie mit der neuen Vorlage eine Seite auf Ihrer Website erstellen.
cq.shared
in den Inhaltsseiten vorhanden ist. Wenn er nicht vorhanden ist, wird der JavaScript-Fehler Uncaught TypeError: Cannot read property 'shared' of undefined
gemeldet.Alle Beispielinhaltsseiten enthalten
cq.shared
, sodass jeglicher darauf basierender Inhalt automatisch cq.shared
umfasst. Wenn Sie sich jedoch ganz neue eigene Inhaltsseiten erstellen möchten, die nicht auf Beispielinhalt basieren, müssen Sie sicherstellen, dass Sie den Namespace cq.shared
einbinden.Weitere Informationen finden Sie unter Verwendung Client-seitiger Bibliotheken.
Verfügbarmachen einer vorhandenen Vorlage making-an-existing-template-available
Dieses Beispiel zeigt, wie eine Vorlage für bestimmte Inhaltspfade verwendet werden kann. Die Vorlagen, die Autoren bei der Erstellung neuer Seiten zur Verfügung stehen, werden durch die in Vorlagenverfügbarkeit definierten Logik bestimmt.
-
Navigieren Sie in CRXDE Lite zu der Vorlage, die Sie für Ihre Seite verwenden möchten, z. B. zur Newsletter-Vorlage.
-
Ändern Sie die Eigenschaft
allowedPaths
und andere Eigenschaften, die für die Vorlagenverfügbarkeit genutzt werden. BeispielsweiseallowedPaths
:/content/geometrixx-outdoors/[^/]+(/.*)?
bedeutet, dass diese Vorlage in jedem Pfad unter/content/geometrixx-outdoors
zulässig ist.