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.).