...
Die Konfiguration für die Print-Themen werden in extra→print erwartet.
Key | Beschreibung |
---|---|
source | (optional) Hier wird der EntityIdentifier der Tabelle für den Quelldatensatz erwartet. Es wird davon ausgegangen, dass das Plugin selbst diese Entity in Lib/Entity definiert. |
template | (optional) |
types | Keywords, die von children und parents verwendet werden können. Diese Option beschreibt das Element. Gebräuchliche Keywords sind:
|
children | Keywords, die definieren, welche Elemente als Kinder des Elements erlaubt werden. |
parents | Keywords, die definieren, in welches Element das Element erlaubt wird. |
variants | Die css-Variante für den designer-node aus, zum Beispiel, admin-styleguide/component/designer-core/_layout.scss. Gängige Varianten sind: header-primary, header-secondary |
Source
Für die Daten des Views sollte eine Entity erstellt werden. Beim Erstellen eines Elements werden dann die Datensätze aus dieser Tabelle zur Auswahl angeboten. Mit dieser Entity wird dann auch beim Verarbeiten des Views gearbeitet.
Hinweis: Im cms werden diese Daten in einer Structure.json definiert und dann in der odm-Spalte des Views gespeichert. Hier wird stattdessen eine tatsächliche Entity erwartet.
Template
Es kann eine Datensatzvorlage für dieses Element hinterlegt werden. Der eingetragene Identifier für das Template sollt dann auch ein Template definiert haben und dieses in der widget.json hinterlegt sein.
...
language | js |
---|---|
theme | RDark |
title | Template in widget.json |
...
Engine
In der Engine.php wird eine public function mit dem Namen des Views erwartet. Als Eingabeparameter wird \Brandbox\PrintCore\PrintDocument\Render\Lib\Struct\ScopeElement reingegeben und als Rückgabe wird ein \Brandbox\PrintStyleguide\Entity\PrintElementAbstract erwartet.
Debug-Hinweis: Die Methode aus der Engine.php wird in \Brandbox\PrintCore\PrintDocument\Render\Manager::getElementResult via \Brandbox\Framework\Brandbox\Routing\Main::getResult aufgerufen.
Einstellungen
Es ist möglich, Einstellungen für einen View zu definieren. Diese Einstellungen werden in der View-Methode im ScopeElement als $settings in Form eines Arrays mitgegeben.
Um Einstellungen zu definieren, sollte parallel zu der config.json des Views auch eine Datei liegen, die "StructureDefinition.json" benannt ist. Beispiel: View/PrintParagraph/views/paragraph/StructureDefinition.json. Die Struktur der Datei sollte dem Schma der structur.json folgen.
Quelldatensatz
Rollenschemata
Man sollte beachten, dass die erstellten Tabellen für die Views auch in einem Rollenschema hinterlegt wurden. Meist in der App in welcher der View liegt. Engine-Methoden brauchen keine Security-Definition, da der view ohne Rechtecheck aufgerufen wird (die Eintity unterliegt allerdings noch dem Rechtesystem).
...
Container-Element müssen ihren Inhalt selbst über \Brandbox\PrintCore\PrintDocument\Render\Manager::getElementResult sammeln.
view.hbs
Wird nicht mehr benötigt, da beim Verarbeiten des Elements ein SG-Element erwartet wird.