Navigation in DAM
Aufbau des Plugins
Ui/Dam
wurde für die v5.6 an den neuen Framework Style Guide und an das neue Ui/Base
angeglichen. Da in DAM meist ein spezieller Kontext vorhanden ist und die Einstiegspuntke in Base aber sehr strikt sind, sind meist Umwege durch eigene Einstiegspunkte nötig, um sicherzustellen, dass der Kontext vorhanden ist und die Subscriber/Listener entsprechend darauf reagieren können. Diese Einsteigspunkte in Ui/Dam
nutzen wiederum Base-Logik.
Die nebenstehenden Funktionen und Events werden von Ui/Dam
angeboten, um die Oberfläche für die Organisationseinheiten zu erstellen. OnPopulateIndex
wird von Ui\Dam\Engine::jsonIndex
ausgelöst. Organisationseinheiten können auf dieses Event reagieren und die Index-Ansicht enstprechend manipulieren.
Ui/Category
Ein Beispiel für eine Index-Ansicht ist DamCore\Ui\Category
. Bei Kategorien sollten nur Dateien angezeigt werden, welche sich in der entsprechenden Kateogrien befinden. Um dies zu ermöglichen reagiert Ui\Category
auf das Event OnPopulateIndex
und fügt dem TabsElement die nötigen Elemente hinzu. Ui\Category
nutzt die Funktionen von Ui\Dam
, um Elemente wie z.B. Toolbar oder Pagination bereitzustellen. Diese Funktionen lösen wiederum Events aus, auf die Ui\Category
reagiert. Diese Vorgehensweise erlaubt eine hohe Erweiterbarkeit und eine gewissen Konformität zwischen den Organisationseinheiten, da diese (im besten Fall) ihre Elemente über die Funktionen von Ui\Dam
beziehen.
Index
Die Index-Ansicht von DAM verfügt über einen eigenen Einstiegspunkt (\Brandbox\DamCore\Ui\Dam\Engine::jsonIndex
).
Im Einstiegspunkt von DAM wird der Kontext gesetzt; die aktive URI und die aktive Organisationseinheit (im Code $navigationEntity
). Der Kontext wird in den ApplicationProperties der Klasse Dam\Manager gespeichert. Demnach ist es unabdingbar diese Klasse stets statisch anzusprechen, um auf diese Werte zuzugreifen.
Kontext und Toolbar
Das Dropdown für den Kontext der dargestellten Datensätze werden über die Standard Events von Base\Context
bezogen und auch über diese von DAM erweitert. Die Subscriber lassen sich im entsprechenden Lib-Ordner finden. Es ist zu beachten, dass manche Funktionen auch ohne ein installiertes DAM-System existieren. Lässt sich ein Kontextmenü- oder Toolbareintrag nicht in den Subscribern von Ui/Dam finden
, sollten die entsprechenden Libraries überprüft werden (z.B: Base/File
, Base/Folder
, Dam/Category
etc.).