Versionen im Vergleich

Schlüssel

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


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.

Image Removed

...

Konfiguration

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

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.

Eine Zeichenkette, die über die HTTP-Parameter an den Server übertragen wird, damit die entsprechende Galerie genutzt werden kann.

Zeige Dateien die keine Bilder sind

Dateien die keine Bilder sind, werden bei einer aktivierter Checkbox auch eingeblendet.

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

.

Sekundärer Ordner

Ein Ordner, der in der Gallerie zusätzlich zur Auswahl steht.

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 OrdnerEin 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

ist es dem Nutzer möglich, auf die Dateien zuzugreifen, die von Ihnen

,

bzw. vom aktuell angemeldeten Benutzer

hochgeladen

hochgeladenen Dateien wurden. Diese Dateien müssen nicht unbedingt im Hauptpfad liegen, um dort angezeigt zu werden.

Info
title

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

  • Pagination: Wie gewohnt, erscheint eine Blätterfunktion im Kopfbereich der Galerie. Über diese Seiten kann navigiert werden.

  • "Mehr"-Button: im Fußbereich der Galerie erscheint ein Button, welcher bei einem Klick weitere Dateien an die bereits Vorhandenen anhängt.

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. 

Image Removed

...

Zeige Dateien aus Kategorien

Ist die Checkbox aktiv, ist der Abruf der Kategorien in der Galerie möglich.

Um die Konfiguration der Galerie zu erweitern, sollten weitere Entitäten erstellt werden, die einen Fremdschlüsselbezug zu einem Galeriedatensatzes besitzen. Die Konfigurationsoberfläche kann über das OnPopulateForm-Event von ComponentForm erweitert werden.

Verwendung

Die Galerie kann über den entsprechenden Button eines Datei-Feldes geöffnet werden. Die Galerie wird dabei in einem Modal platziert.

Die Galerie ist standardmäßig aus folgenden Elementen aufgebaut.

Nr.

Bereich

Beschreibung

1 & 2

Marginalie -

Buttons
  • Ordner: Hier wird der Hauptpfad angezeigt, welchen Sie in der Konfiguration als "Hauptpfad der Bildauswahl" definiert hatten. Dateien in diesem Pfad werden aus MAM Ordner (mam/folder) entnommen. Die Dateien in diesem Hauptpfad werden dann rechts angezeigt. Wenn keine Dateien gefunden wurden, kommt eine entsprechende Meldung.
  • Kategorien: Hier können Sie Dateien aus angelegte Kategorien auswählen. Die Kategorien befinden sich nicht im Hauptpfad, d.h. alle Kategorien die sich in der Tabelle Kategorien befinden, werden angezeigt, egal welcher Ordner als Hauptpfad definiert ist ("Zeige Kategorien" muss natürlich in der Konfiguration aktiviert sein).
  • Meine Dateien: Wenn Sie auf diesen Button klicken werden Ihnen alle Dateien angezeigt, welche Sie hochgeladen haben, bzw. die hochgeladenen Dateien des derzeit angemeldeten Benutzers.
2Marginalie - Rekursiver Baum2do

Toolbar & Baum

Die Organisationseinheiten einer Galerie können über entsprechende Ui-Elemente in der Toolbar, oder im rekursiven Baum dargestellt werden. Je nach Kontext, sollte der Programmierer eine passende Darstellung wählen.

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.

Es ist möglich die Blätterfunktion durch einen "Mehr"-Button zu ersetzen, der weitere Kacheln nachlädt, sofern weitere Elemente vorhanden sind.

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.

  • Vorschaubild

  • Trennstrich

  • Dateiinformationen

  • Aktionen (Löschen, Download und Favorisieren sind im Standard enthalten)

Image Removed

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.

Image Removed


...

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 zwei Einsteigspunkte:

  • Ui/Modal/Engine::gallery

    Ui/Modal/Engine::gallery/margin
    • Haupteinstiegspunkt. Diese Methode liefert die Galerie als Ganzes aus.

  • UI/Modal/Engine::pwa/gallery/files/wrapper

    • Diese Methode ist für den Hauptbereich zuständig. Wird ein Element einer Organisationseinheit gewählt, wird der Hauptinhalt entsprechend aktualisiert.

Den Haupteinstiegspunkt bildet gallery. Wird diese Methode aufgerufen, wird der Rahmen für die Galerie platziert. Die Marginalie bzw. der Hauptbereich werden nachgeladen.


Drawio
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameGalleryViews
simpleViewerfalse
diagramWidth1111

...

revision2

Marginalie

Die Marginalie wird über den Aufruf gallery/margin nachgeladendie Methode Ui\Modal\Manager::buildMargin erstellt. In der Marginalie befinden sich Elemente, die der Navigation dienen. Diese Elemente geben an, was im Hauptbereich dargestellt wird.

Im "Header" Kopfbereich der Marginalie können Buttons aus dem Styleguide befindet sich eine Toolbar, in der Buttons platziert werden können. 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" Körper der Marginalie hingegen werden hingegen strukturierte Organisationseinheiten dargestellt, welche wiederum Dateien enthalten. Ein Beispiel für eine solche strukturierte Organisationseinheit ist eine solche Organisationseinheiten sind Ordner, der die weitere Unterordner besitzt besitzen und explizit über die Konfiguration der Galerie freigegeben wurdewurden.

...

Hauptbereich

Der Hauptbereich wird über den Aufruf gallery/files/wrapper Ui\Modal\Engine::pwaGalleryContent 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 ; eine Kopfzeile, in der Steuerelemente angezeigt werden und ein Hauptbereich in dem hauptsächlich die Dateikarten angezeigt werden.

Im Kopfbereich 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 galleryRequest ü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 galleryRequest platzierten Elemente sind somit möglichst unabhängig voneinander.

gallery/files

Im Hauptbereich werden die auf Basis der im Kopfbereich bereitgestellten Steuerungsparameter gesammelten Dateien in Form von Karten dargestellt. 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:

...

...

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.

...

Die

...

Galerie löst

...

Events aus, um die Manipulation der Galerie möglich zu machen

...

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

...

. Diese Events verfügen über ein Kontext-Objekt, welches alle nötigen Daten beinhaltet.
Folgende Events werden ausgelöst, um die Inhalte der Galerie zu füllen. Es existieren weitere Events, um die Galerie präziser zu manipulieren.

Event

Beschreibung

OnPopulateMargin

Ein Event, um den FrameworkContainer der Marginalie zu füllen. GalleryCore löst in Reaktion auf dieses Event diese weiteren Events aus:

  • Ui\Modal\lib\event\Margin\OnPopulateToolbar

  • Ui\Modal\lib\event\Margin\OnPopulateTree

OnPopulateGalleryContent

Ein Even, um den FrameworkContainer des Hauptbereiches zu füllen. GalleryCore löst in Reaktion auf dieses Event diese weiteren Events aus:

  • Ui\Modal\lib\event\GalleryRequest\OnPopulateToolbar

  • Ui\Modal\lib\event\GalleryFiles\OnPopulateGalleryFiles

  • Ui\Modal\lib\event\GalleryFiles\OnPopulateGalleryFile

Ui/Modal implementiert zahlreiche Listener, um die Basisfunktionalität der Galerie bereitzustellen.

Übersicht aller Events

...

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.

Codeblock
languagejs
themecollapsetrue
RDark
onCollectGalleryRequestParams: function (event) {
  if (event.detail.galleryIdentifier === this.galleryIdentifier) {
  var eventOptions = {
    detail: {
      params:
        {
          query: this.element.value
        },
      galleryIdentifier: this.galleryIdentifier
    },
    bubbles: true
  }

  var customEvent = new CustomEvent('onUpdateGalleryRequestParams', eventOptions);
    this.element.dispatchEvent(customEvent)
  }
}


onUpdateGalleryRequestParams

  • params - Array/Objekt. Die hier enthaltenen key-value-Einträge werden in die Parameterliste des nächsten Requests übernommen.

Dieses Event aktualisiert die Parameterliste des Request-Objekts mit den im event definierten Parametern des detail-Objekts.

onGalleryRequestReload

  • replaceTarget - Boolean. Steuert das "targetReplaceWith"-Flag der Brandbox event.js.

  • target - Zeichenkette. Selektor, der das Ziel angibt.

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

  • scope - Zeichenkette. Der Eintrag im WebStorage wird in diesem Scope/Kontext angelegt.

  • key - Zeichenkette.

  • value - Zeichenkette.

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

  • fileID - Ganzzahl. Die ID der Datei.

  • relativePath - Zeichenkette. Der relative Pfad der Datei.

  • basename - Zeichenkette. Der Name der Datei.

  • src - Zeichenkette.

  • gallery - Objekt. Die Instanz von gallery.js.

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

  • contentID

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


Einbindung in der Dateiauswahl

Die Galerie kann im Feld vom Typ "Dateiauswahl" hinzugefügt werden. Um das zu ermöglichen, muss die Konfiguration des Feldes angepasst werden.

In der Konfiguration muss ein neues Objekt "gallery" angelegt werden. Dieses Objekt besitzt zwei Eigenschaften:

  • isEnabled

    • Boolescher Wert. Dieser Wert entscheidet, ob der Button für die Galerie dargestellt werden soll.

  • configKey

    • Zeichenkette. Der Identifikator des gewünschten Galerie-Datensatzes.

InputFile.gallery
Codeblock
languagejs
"identifier": "identifierInputFile1",
"labels": {
	"de": "Dateifeld mit Galerie",
	"en": "File field with gallery"
},
"formType": "file",
"configuration": {
	"gallery": {
		"isEnabled": true,
		"configKey": "base-shopArticle"
	}
}


Bildauswahl als Eingabefeld

Es ist möglich eine Sammlung von Bildern als Eingabefeld zu nutzen. Somit erfolgt die Bildauswahl nicht über das Modal der Galerie, sondern durch einen Klick auf ein Bild, welches direkt beim Feld dargestellt wird. Der Bilderpool wird durch den Primärordner einer Galerie festgelegt. Diese Galerie muss in der Konfiguration festgelegt werden. Der Typ für das Feld ist ImageSelect.

Codeblock
languagejson
{
  "identifier": "imageSelection",
  "labels": {
    "de": "Bildauswahl",
    "en": "ImageSelection"
  },
  "formType": "ImageSelect",
  "configuration": {
    "galleryId": 95
  }
}