Grundsätze der Templates: Seitenlayout, Inhaltsansichten, Attribute
Das Template-System ist hierarchisch. Ein Template der ersten Ebene, pagelayout.tpl, steuert den Rahmen. Darin
zeichnen Inhaltsansicht-Templates das, was angefordert wurde. Darin wiederum zeichnen Attribut-Templates
einzelne Felder. Fast jedes Template kann durch ein spezifischeres überschrieben werden, abhängig von der Sektion, der
Klasse, der Tiefe im Baum und mehr (Templates überschreiben).
Das Seitenlayout
pagelayout.tpl wird immer aufgerufen. Es zeichnet den Kopf (Stile, Skripte), das obere Menü, die Navigation, ein
Suchfeld, die Fußzeile und setzt die Inhaltsansicht in die Mitte ($module_result.content). Es kann überschrieben
werden: Die Startseite kann ein anderes Layout haben als ein Produktkatalog.
Weitere Layouts für eine druckfreundliche Seite oder ein Pop-up werden mit einem URL-Teil, /layout/set/<name>/, vor
der Adresse gewählt: /layout/set/print/<address> verwendet das Layout mit dem Namen print. Die Layouts sind in
layout.ini definiert, jedes mit dem Seitenlayout-Template, das es verwendet:
[print]
PageLayout=print_pagelayout.tplDie mitgelieferte Datei definiert fullscreen, popup und print. (Das Buch schreibt die URL als /set/layout/...;
das Modul ist layout, die View set.) Ein Override kann eine solche Seite mit dem Schlüssel layout erkennen (Templates und Design).
Inhaltsansichten
Eine Inhaltsansicht ist die Darstellung dessen, was die URL angefordert hat. Die klassische Adresse /content/view/full/2
bedeutet: Zeige Knoten 2 in der Ansicht full. Bei sprechenden Adressen ist die Ansicht implizit: die Vollansicht.
Weitere Standardansichten, denen Sie begegnen:
| Ansicht | Verwendet für |
|---|---|
full | die Seite des Knotens |
line | eine Zeile in einer Liste von Unterelementen |
embed, embed-inline | ein Objekt, das in einen Text eingefügt ist |
sitemap, print, pdf | eine Sitemap, eine Druckseite, ein PDF |
Die Templates liegen in design/<design>/templates/node/view/<view>.tpl. Um einen eigenen Ansichtsmodus zu
erstellen, legen Sie eine Datei mit Ihrem Namen in diesen Ordner, zum Beispiel extended.tpl mit mehr Einzelheiten als
die Vollansicht (die Änderungshistorie, der letzte Bearbeiter, verwandte Objekte), und rufen Sie sie als
/content/view/extended/<node id> auf, oder fordern Sie sie in einem Template mit fetch und node_view_gui an
(Ansichtsmodi für Builder).
Inhaltsansichten können für Klassen, Sektionen oder einen einzelnen Knoten überschrieben werden. Die eigene Vollansicht einer Klasse ist der häufigste Override überhaupt.
Attribut-Templates
Eine Vollansicht gibt die Felder normalerweise nicht selbst aus: Sie bittet jedes Attribut, sich mit attribute_view_gui
selbst zu zeichnen, und das Ansichtstemplate des Datentyps erledigt das (eine Textzeile als Text, ein Bild als Bild
eines bestimmten Alias, Rich Text als HTML, siehe Rich-Text-Tags). Auch diese Attribut-Templates
können überschrieben werden, nach Klasse, Knoten und Sektion.
Modulare Templates
Code, der an mehreren Stellen verwendet wird, kommt in eine eigene Datei und wird mit include eingebunden, mit
Parametern:
{include uri='design:parts/footer.tpl' show_social=true()}Typische Teile: die Stilliste im Kopf, ein Kalender, Navigatoren, Menüblöcke.
Stylesheets und Bilder
Stil gehört in CSS-Dateien, damit die Templates nur Markup und Template-Code enthalten. In Exponential werden
Stylesheets in design.ini ([StylesheetSettings]) aufgeführt und vom Packer gebündelt; sie werden nicht in ein
Template geschrieben (Die Design-Kette). Bilder, die zum
Design gehören (Logos, Symbole), liegen im Ordner images/ des Designs. Inhaltsbilder kommen aus ezimage-Attributen.
Bearbeitungs-Templates
Auf einer gemeinschaftlich gepflegten Website möchten Sie Redakteure vielleicht nicht in der Administration haben. Bearbeitungs-Templates können zusammen mit einem Modul, das sie verwendet, eine maßgeschneiderte Oberfläche im eigenen Design der Website anbieten, unter dem normalen Siteaccess (Administrationsseiten im Stil von admin4).
Caching
Die Verarbeitung von Templates ist aufwendig. Kompilierte Templates, der Inhalts-(View-)Cache und Cache-Blöcke senken den Aufwand (Caching in Templates).
Weiter: Grundlagen der Template-Syntax.
Quelle und Lizenz
Bearbeitet nach Kapitel 3, „Displaying Content with eZ publish Templates“, von Learning eZ publish: Building Content Management Solutions von Paul Borgermans, Tony Wood, Paul Forsyth, Martin Bauer, Björn Dieding und Ben Pirt (zusätzliches Material von Bruce Morrison), zweite Auflage, 2024, Book-Learning-eZPublish. Copyright (c) 2004-2024 7x und Graham Brookins. Lizenziert unter der GNU Free Documentation License, Version 1.3 oder einer späteren Version, ohne unveränderliche Abschnitte, ohne vordere und ohne hintere Umschlagtexte (die Lizenz). Änderungen: umgestellt und gekürzt; Syntax, Operatoren, Einstellungen und Beispiele auf Exponential 6 aktualisiert (foreach, aktuelle Einstellungen, kein Inline-Stil und kein Inline-Skript).