Beim ersten Öffnen einer mam/gallery Oberfläche wird automatisch ein Datensatz in der Tabelle 2019-05-07_10-29-32_.Bildergalerie v5.3#base/galleryConfiguration (Konfiguration der Bildergalerie) mit einem Konfigurations-Schlüssel angelegt.
Konfiguration
Bereich | Beschreibung |
---|---|
Konfigurations-Schlüssel | Sobald man eine mam/gallery Oberfläche zum ersten Mal in einem Plugin öffnet, wird automatisch für dieses Plugin ein Datensatz in der Tabelle 2019-05-07_10-29-32_.Bildergalerie v5.3#base/galleryConfiguration (Konfiguration der Bildergalerie) angelegt. Der Konfigurations-Schlüssel wird dabei mitgeliefert und automatisch in den Datensatz mit eingeschrieben. Im Konfigurations-Schlüssel steckt der Name des Plugins. Wenn beispielsweise im Konfigurations-Schlüssel "base-shopArticle" steht, weis man genau dass es sich um shop/Article handelt. Da jedes Plugin seinen eigenen Konfigurations-Schlüssel besitzt und jeder Schlüssel einzigartig ist, kann man das Plugin leicht identifizieren. Wenn es bereits einen Datensatz in der Tabelle mit dem Konfigurations-Schlüssel gibt, wird dieser nur noch aufgerufen und nicht neu generiert. Mit Hilfe des Konfigurations-Schlüssels ist 2019-05-07_10-29-32_.Bildergalerie v5.3#base/galleryConfiguration natürlich auch manuell konfigurierbar. Hier sind alle Konfigurations-Schlüssel aufgelistet: Konfigurations-Schlüssel: Liste |
Primärer Ordner | Ein wählbarer Ordner in der Tabelle mam. Der Ordnerpfad wird wie folgt angegeben: share/public/client-X/domain-X/Ordnername/ client-X steht für den Client, wodurch das X durch eine Zahl ersetzt wird. domain-X steht für die Domain, X wird ebenfalls durch eine Zahl ersetzt. Ordnername ist der Hauptordner. Dateien, welche sich im Hauptordner (Hauptpfad) befinden, werden später in der mam/gallery Oberfläche angezeigt. Beim eintragen von "share/public/client-1/domain-1/none" werden Dateien keiner Ordner von angezeigt. |
Manuelle Ordner-Angabe | Eine Pfadangabe zu einem Ordner. Hier können Wildcards benutzt werden. Dieser Wert überschreibt den primären Ordner. Weitere Informationen sind im Tooltip des Feldes vorhanden. |
Sekundärer Ordner | Ein Ordner, der in der Gallerie zusätzlich zur Auswahl steht. |
Zeige meine Dateien | Ist diese Checkbox aktiviert, wird in der mam/gallery Oberfläche ein Button aktiviert, welcher Zugriff zum Auswählen von Dateien gibt, die von Ihnen, bzw. vom aktuell angemeldeten Benutzer hochgeladen wurden. Diese Dateien müssen nicht unbedingt im Hauptpfad liegen, um dort angezeigt zu werden. Meine Dateien Beachten Sie, dass mit "Meine Dateien" immer die Dateien gemeint sind, die unter dem aktuell angemeldeten Benutzer-Konto hochgeladen wurden. |
Zeige Dateien aus Kategorien | Bei Aktivierung dieser Checkbox wird der Button "Kategorien" eingeblendet. Die Kategorien befinden sich nicht im Hauptpfad und werden immer angezeigt sobald die Checkbox aktiviert ist. |
Zeige Dateien aus dem primären Ordner | Bei aktiver Checkbox wird der Hauptpfad in der mam/gallery Oberfläche sichtbar als "Ordner" angezeigt. Sie können dann Dateien vom Hauptpfad auswählen. Der Hauptpfad ist dieser, welchen Sie oben definiert haben. |
Zeige Dateien aus dem sekundären Ordner | Bei aktiver Checkbox wird zusätzlich zu dem primären Ordner auch der sekundäre Ordner angezeigt. |
Zeige Dateien die keine Bilder sind | Dateien die keine Bilder sind, werden bei einer aktivierter Checkbox auch eingeblendet. |
Zeige nur die Dateien des primären Ordners | Hier werden nur Dateien angezeigt die sich im Hauptpfad befinden. Dateien die sich in einem Unterordner des Hauptpfades befinden werden hierbei ausgeblendet. Bei aktiver Checkbox werden die Buttons "Zeige meine Dateien", "Zeige Kategorien" und "Zeige Hauptpfad" ausgeblendet, und nur die Dateien des Hauptpfades sind sichtbar. |
Anzahl Datensätze pro Seite | Mit dieser Option können Sie x Datensätze (Dateien) pro Seite anzeigen lassen. Ist die Anzahl pro Seite niedriger als Dateien insgesamt angezeigt werden können, wird eine Seitenauswahl angezeigt, mit der Sie auf einzelne Seiten springen können. |
Weitere Dateien | Über dieses Auswahlfeld wird festgelegt, wie die Optionen für "weitere Dateien" dargestellt werden.
Standardmäßig wird die Pagination dargestellt, sofern keine Option gewählt wurde. |
Konfigurations-Schlüssel zu mam/gallery:
- base-cmsCareerEntry
- base-cmsEventsEntry
- base-cmsNewsEntry
- base-mamFile
- base-mamFolder
- base-mamFormatPreset
- base-shopArticle
- base-shopArticleTemplate
- base-shopDeliveryMethod
- base-shopGroup
- base-shopOrderArticle
- base-shopSessionArticle
- base-shopVariantAttribute
- cms-ui
- w2p-h5e
- w2p-mail
- w2p-nested
- w2p-strict
Verwendung
Wenn Sie sich zum Beispiel in einem Artikel (in shop/Article) befinden, können Sie im Datensatz mit einem Klick auf "Dateien" eine Datei auswählen.
Nachdem Sie auf "Dateien" geklickt haben, öffnet sich die mam/gallery Oberfläche. Folgende Tabelle dient Ihnen zur Hilfe beim Benutzen.
Nr. | Bereich | Beschreibung |
---|---|---|
1 | Marginalie - Buttons |
|
2 | Marginalie - Rekursiver Baum | 2do |
3 | Blätterfunktion | Wenn sich viele Dateien im Hauptpfad befinden, bzw. mehr Dateien wie in der Konfiguration "Anzahl Datensätze pro Seite" angegeben, können Sie hier auf verschiedene Seiten springen. Falls es nur eine Seite gibt, wird die Seitenauswahl nicht angezeigt. |
4 | Dateisuche | Mit dieser Option können Sie nach Dateien suchen indem Sie den Namen eingeben, oder Buchstaben und Zahlen, welche der Dateinamen enthält. Das suchen nach Dateiendungen (z.B. ".jpg", ".png", ...) ist ebenfalls möglich. Danach einen Klick auf die Enter-Taste um die Suche zu starten. Die Dateien werden Ihnen rechts im großen Feld angezeigt. |
5 | Sortierung | Hier kann die Sortierung gewählt werden. Es werden alle Spalten aufgelistet, die als Sortierspalten gekennzeichnet sind und keine Systemspalten sind. |
6 | Sichtbare Werte | Hier können die Werte gewählt werden, die in den Kacheln sichtbar sein sollen. Die Einstellung wird im WebStorage persistiert. Die Sortierung ist in der Parameterliste bei Anfragen an die Galerie vorhanden und muss von den Listenern/Subscribern, welche die Dateien aus der Datenbank beschaffen, entsprechend verarbeitet werden. |
7 | Datei-Kachel | Die Kachel besteht aus mehreren Unterelementen.
|
Hier ein Beispiel, wenn sich keine Dateien im Hauptpfad befindet, bzw. keine Dateien gefunden werden konnten. Die Seitenauswahl ist ausgeblendet und eine entsprechende Meldung mit dem Text "Keine Dateien vorhanden" wird angezeigt.
Aktionen
Im Kopfbereich der Galerie lassen sich unter Umständen Buttons finden, über die bestimmte Aktionen ausgeführt werden können.
- Upload: Wurde der Upload in der Konfiguration der Galerie aktiviert, so können Dateien in dieser Organisationseinheit hochgeladen werden. Derzeit ist diese Funktion nur für "Favorisierte Dateien" und "Meine Dateien" verfügbar.
Aufbau der Galerie
Die Galerie besitzt grundlegend drei Einsteigspunkte:
Ui/Modal/Engine::gallery
Ui/Modal/Engine::gallery/margin
UI/Modal/Engine::gallery/files/wrapper
gallery
Den Haupteinstiegspunkt bildet gallery
. Wird diese Methode aufgerufen, wird der Rahmen für die Galerie platziert. Die Marginalie bzw. der Hauptbereich werden nachgeladen.
gallery/margin
Die Marginalie wird über den Aufruf gallery/margin nachgeladen. In der Marginalie befinden sich Elemente, die der Navigation dienen. Diese Elemente geben an, was im Hauptbereich dargestellt wird.
Im "Header" der Marginalie können Buttons aus dem Styleguide platziert werden. Diese Buttons werden üblicherweise genutzt um die Navigation zu Dateien zu ermöglichen, die keine dahinterliegende Struktur besitzen (z.B. willkürliche Session Dateien).
Im "Body" der Marginalie werden hingegen strukturierte Organisationseinheiten dargestellt, welche wiederum Dateien enthalten. Ein Beispiel für eine solche strukturierte Organisationseinheit ist eine Ordner, der weitere Unterordner besitzt und explizit über die Konfiguration der Galerie freigegeben wurde.
gallery/files/wrapper
Der Hauptbereich wird über den Aufruf gallery/files/wrapper geladen. Während sich die Marginalie mit der Frage beschäftigt, was dargestellt wird, beschäftigt sich der Hauptbereich hingegen damit, wie die vorab "gewählten" Inhalte dargestellt werden. Der Hauptbereich wird wiederum in zwei Bereiche untergliedert.
gallery/request
In dieser Ansicht werden Elemente platziert, mit denen man die Filterung und Ansichtseinstellungen für die Dateikacheln beeinflussen kann. In diesem Bereich finden sich gängige Funktionen wie z.B. eine Suche oder Sortierungsmöglichkeiten wieder. Die Steuerungsparameter wie z.B. der Suchbegriff des Suchfeldes können über eigene JavaScript-Dateien an das JavaScript von gallery/request
übermittelt werden. Wurden die gewünschten Parameter übermittelt, lässt sich eine neue Anfrage für Dateien auslösen. Somit gibt es nur eine zentrale Stelle, welche die Anfragen für die Galerie ausführt. Die in gallery/request
platzierten Elemente sind somit möglichst unabhängig voneinander.
gallery/files
Dieser Aufruf bezieht die geforderten Dateien anhand der Steuerungs- und Filterparameter aus Marginalie und Request, aus der Datenbank und mappt diese zu den Kachel-Objekten aus dem Styleguide.
Events
PHP
Alle Events der Galerie leiten von der abstrakten Klasse GalleryEventAbstract
ab. Diese abstrakte Klasse sieht es vor, den Events die Parameter bereitzustellen, welche von fast jedem Listener/Subscriber gebraucht werden.
Diese Parameter sind:
Parametername | Typ | Beschreibung |
---|---|---|
continue | bool | Dieser boolesche Parameter steuert die Ausführungslogik des Subscribers. Ist der Parameter "false", wird der Subscriber keine weitere Listener-Logik ausführen. Wird dieser Wert von einem Listener gesetzt, kann dieser so sicherstellen, dass nach ihm keine weiteren Listener ausgeführt werden. |
contentID | integer | Ein Zahlenwert, der die ID eines Inhalts beschreibt. Bei einem Klick auf einen Ordner in der Marginalie repräsentiert dieser Wert beispielsweise die ID der mamFolder-Entität. |
contentType | string | Eine Zeichenkette, welche den Inhalt identifiziert. Bei einem Klick auf einen Ordner in der Marginalie repräsentiert dieser Wert beispielsweise den Identifier der mamFolder-Entiät. |
galleryConfig | UI/Modal/lib/entity/mamGallery | Die Entität des entsprechenden Konfigurationsdatensatzes. |
source | string | Ein Identifikator, der die Quelle einer Sache repräsentiert. Wurde ein Ordner beispielsweise durch einen Listener platziert, so wird durch diesen Identifikator erkannt, von welchem Listener diese Organisationseinheit stammt. Diese Unterscheidung ist notwendig, da es mehrere Listener geben kann, die auf den contentType "mamFolder" reagieren möchten. |
params | array | Ein anonymes Array mit beliebigen Werten, die aus den HTTP-Params stammen. |
Die Galerie löst die folgenden Events aus, um die Manipulation der Galerie möglich zu machen:
Event | EventInterface | Beschreibung |
---|---|---|
collectFiles | GalleryEventListenerInterface | Dieses Event enthält Parameter die für die Beschaffung von Dateien aus der Datenbank genutzt werden können (Limit, Offset, Sortierung). mamFiles, welche von den Listenern dieses Events gesammelt werden, werden zu Kacheln gemappt. |
defineDefaultState | GalleryEventListenerInterface | Mit diesem Event kann entschieden werden, ob die Marginalie dargestellt werden soll, oder nicht. (Dieses Event wird wahrscheinlich entfallen, da die Datenstruktur der Konfiguration vor dem Release der v5.6 angepasst werden muss und sich so eine bessere Möglichkeit dieser Steuerung ergeben wird). |
onPopulateEventTrigger | GalleryEventListenerInterface | Mit diesem Event lassen sich data-Attribute definieren, auf welche das JavaScript der Galerie "onClick"-Events binden wird. |
onPopulateGalleryFiles | GalleryEventListenerInterface | Durch dieses Event lässt sich der Hauptbereich der Galerie anpassen. Hier können Steuerungselemente und Kacheln bearbeitet oder ergänzt werden. Mit diesem Event werden beispielsweise die Buttons zum Favorisieren von Dateien und zum Hochladen in der Galerie hinzugefügt. |
onPopulateMargin | GalleryEventListenerInterface | Mit diesem Event kann die Marginalie erweitert werden. Der Marginalie können Buttons hinzugefügt oder entfernt werden. Auch dem Baum für strukturierte Organisationseinheiten können neue Zweige und Blätter hinzugefügt (oder entfernt) werden. |
onPostUpload | Dieses Event ermöglicht es dem Integrator die erfolgreich hochgeladene Datei willkürlich zu manipulieren. Beispielsweise kann hier eine Verknüpfung zwischen der hochgeladenen Datei und einer Kategorie erstellt werden, sofern diese Datei in einer Kategorie hochgeladen wurde. | |
onPreUpload | GalleryEventListenerInterface | Dieses Event ermöglicht es dem Integrator einen anderen Zielpfad für die hochzuladende Datei zu wählen. Wird eine Datei in einem Ordner hochgeladen, sollte diese auch in diesem Ordner angelegt werden und nicht in einem anonymen Ordner, der abhängig von der Session ist. |
Ui/Modal implementiert zahlreiche Listener, um die Basisfunktionalität der Galerie bereitzustellen.
JavaScript
Sämtliche detail-Objekte der Events einer Galerie sollten den String "galleryIdentifier" enthalten, da es möglich ist, dass mehrere Galerien aktiv sind. Dieser Identifier wird zur Unterscheidung benötigt.
Event | event.detail | Beschreibung |
---|---|---|
onTriggerUpdateGalleryRequestParams | Dieses Event kann von Elementen im Request-Bereich der Galerie getriggert werden, um der Galerie zu signalisieren, dass die Parameterliste aktualisiert werden soll. Dieses Event löst wiederum "onCollectGalleryRequestParams" aus. | |
onCollectGalleryRequestParams | Dieses Event wird vom Request-Bereich selbst getriggert, sobald die Parameterliste aktualisiert werden soll. Die Elemente im Request-Bereich können auf das Event reagieren und die Parameterliste befüllen. Um die Parameter an die Galerie zurückzugeben ist das Event "onUpdateGalleryRequestParams" vom Listener auszulösen. | |
onUpdateGalleryRequestParams |
| Dieses Event aktualisiert die Parameterliste des Request-Objekts mit den im event definierten Parametern des detail-Objekts. |
onGalleryRequestReload |
| Wird dieses Event ausgelöst, werden neue Inhalte für die Galerie angefragt. Die Parameterliste des Request-Objekts wird für diese Anfrage genutzt. Über die Parameter "target" und "replaceTarget" kann man bestimmen, welche HTML-Inhalte teilweise oder vollständig ersetzt werden. |
onUpdateWebStorage |
| Dieses Event löst eine Aktualisierung des WebStorage in brandbox aus. Es sollte beachtet werden, dass die WebStorage Einträge der Galerie über einen Scope (Kontext) verfügen sollen. Beispielsweise sollte die Einstellung der sichtbaren Kachelwerte unabhängig von der Sortierung gespeichert werden. |
GalleryFileClicked |
| Dieses Event wird i.d.R. ausgelöst, wenn eine Dateikachel angeklickt wird. Auf das Event kann reagiert werden, wenn bei dem Klick auf eine Datei ein spezielles Verhalten erwartet wird. Normalerweise wird das Input-Feld mit den Daten des detail-Objekts befüllt, sodass die Vorschau generiert werden kann (siehe Base/Widget/js/gallery::UIGallery.onFileClick). |
GalleryRemoveFile |
| Über die Angabe einer contentID lässt sich die entsprechende Kachel aus der Galerie entfernen (nur UI!). Dieses Event wird bspw. beim Löschen oder beim Entfavorisieren in der "Favorisierte Dateien"-Ansicht ausgelöst. |