Ansichten sind Darstellungselemente, die sich auf Seiten platzieren lassen.
Aufbau
Eine Ansicht sollte sich innerhalb der Ordnerstruktur einer App immer im Namespace "View" befinden, bspw. für die Ansicht "Text / Bild" lautet der Ordner:
plugin/remote/brandbox/cms-layout-standard/src/View/Tile
Unterhalb muss sich wiederum ein Ordner "views" befinden. Eine platzierbare Ansicht benötigt dort immer mindestens 2 Dateien:
config.json
Diese Konfigurationsdatei im JSON-Format vergibt wichtige Parameter für platzierbare Views:
Parameter | Beschreibung |
---|---|
coreType | Muss für CMS-Ansichten immer "cms-core" lautet (es gibt auch andere Arten von Ansichten). |
friendlyName | Der Name der Ansicht ein allen gewünschten Sprachen, wird beim Platzieren im CMS-Designer dargestellt. |
depends | Die Paketnamen von CMS-Themes, für die die View platzierbar ist. |
Hier beispielhaft der Inhalt der config.json für "Text / Bild":
{ "coreType": "cms-core", "friendlyName": { "de": "Text / Bild", "en": "Text / Image" }, "depends": ["Theme/DefaultCms"] }
view.hbs / Engine.php
Die hbs-Datei regelt den HTML-Inhalt der Ansicht. In ihr können Partial-Calls aus dem verwendeten Styleguide platziert werden.
Außerdem können Styleguide-Elemente, die in einem zugehörigen öffentlichen Endpunkt in der Engine.php aufgebaut wurden, platziert werden. Dieser Endpunkt wird beim Aufbau der Seite, auf der die Ansicht platziert wurde, automatisch aufgerufen.
Der Endpunkt ist eine öffentliche PHP-Methode mit dem Namen des Ordners unterhalb des Ordners "view" und muss einen Array mit benamten Array-Keys zurückgeben, denen Styleguide-Elemente zugeordnet werden:
Am Beispiel "Text / Bild":
public function tile($viewID) { $paragraph = new FrameworkStyleguide\Entity\FrameworkParagraph(); $paragraph->content = new FrameworkStyleguide\StringSafe('Hello World'); return [ 'paragraph' => $paragraph ]; }
"paragraph" steht in der view.hbs nun über die serve-Variable zur Verfügung:
{{{ compile serve.paragraph }}}