Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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. lautet der Ordner für die Ansicht "Text / Bild":

plugin/remote/brandbox/cms-layout-standard/src/View/Tile

Im weiteren Verlauf "Paketordner" genannt.
Unterhalb des Paketordners muss sich eine PHP-Datei "Engine.php" und außerdem ein Ordner "views" befinden. Eine platzierbare Ansicht benötigt dort immer mindestens 2 Dateien:

config.json

view.hbs

Engine.php

Diese Datei liegt direkt im Paketordner und stellt die öffentlichen Endpunkte für die Ansichten bereit. Ein Endpunkt entspricht einer öffentlichen Methode in dieser Datei.

...

Codeblock
languagephp
themeRDark
public function tile($viewID)
{
    $paragraph = new FrameworkStyleguide\Entity\FrameworkParagraph();
    $paragraph->content = new FrameworkStyleguide\StringSafe('Hello World');
	return [
       'paragraph' => $paragraph
    ];
}

config.json

Anker
config.json
config.json

...

Hier beispielhaft der Inhalt der config.json für "Text / Bild":

Codeblock
themeRDark
{
  "coreType": "cms-core",
  "friendlyName": {
    "de": "Text / Bild",
    "en": "Text / Image"
  },
  "depends":
    ["Theme/DefaultCms"]
  }

view.hbs

Anker
view.hbs
view.hbs

Diese 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 (siehe oben) 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 Endpunkt-Namen als Methode und muss einen Array mit benamten Array-Keys zurückgeben, denen Styleguide-Elemente zugeordnet werden:

...

"paragraph" steht in der view.hbs über die serve-Variable zur Verfügung:

Codeblock
languagexmlthemeRDark
{{{ compile serve.paragraph }}}

Ermittlung des Endpunkt-Namens

config.json-Dateien für Ansichten werden in bis zu 3 Ordnerebenen unter dem Ordner "views" gefunden. Der Feature-Name ergibt sich aus dem Namen der Ordner im CamelCase-Style.
Beispiele:

Pfad zur hbs-DateiName der Feature-Methode in der Engine.php
views/my/new/feature/view.hbsmyNewFeature
views/single/slider/view.hbssingleSlider
views/tile/view.hbstile

Abhängigkeitskette für die Zuordnung von Ansichten zu Theme-Paketen

Wie oben beschrieben werden Ansichten über den Parameter "depends" in der config.json zu Theme-Paketen zugeordnet.

...

Diese Logik findet Verwendung beim Theme-Paket "Theme/DefaultShop". Dort wird in der config.json des Pakets eine Abhängigkeit zu Theme/DefaultCms definiert. Damit sind auf einer Seite, die ein Template von Theme/DefaultShop verwendet, auch alle Ansichten platzierbar, die über den Parameter "depends" in der config.json der Ansicht dem Theme-Paket "Theme/DefaultCms" zugeordnet sind.

RDark
Codeblock
theme
titleconfig.json des Theme-Pakets Theme/DefaultShop
{
  "friendlyName": {
    "de": "Default Shop Theme",
    "en": "Default Shop Theme"
   },
  "depends": ["Theme/DefaultCms"]
}

...