Versionen im Vergleich

Schlüssel

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

...

v5.5.2

...

 

...

...

...

Erstellt man beispielsweise ein Uploadformular für Kategorien, so kann man über einen Link mit Verifizierungstoken auf dieses Formular zugreifen. Der Uploadprozess besteht aus drei Schritten:

  1. Upload der Dateien

  2. Befüllen der Felder pro Datei (sofern vorhanden) bzw. Hinzufügen oder Entfernen von Dateien

  3. Abschluss des Uploadvorgangs

Im Fall der Kategorie gibt es keine zusätzlichen Felder im zweiten Schritt. Das Verknüpfen der hochgeladenen Dateien zur vorausgewählten Kategorie findet im dritten Schritt codeseitig statt.

...

Es sollte eine öffentliche Rolle vorhanden sein, die es ermöglicht Dateien und Ordner anzulegen. Ist das nicht der Fall, wird der Uploadvorgang fehlschlagen.

Drawio
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNamedynamicUploadProcess
simpleViewerfalse
diagramWidth579
revision

...

2

Aufbau des Plugins

Die dynamischen Uploadformulare basieren auf der Entität dynamicUpload. Diese Entität enthält sowohl Informationen, die für den Upload zwingend benötigt werden, als auch Informationen, die die Basisfunktionalität ergänzen.
Benötigte Parameter sind:

  • Name

  • IDs der Verifizierungstoken

Optionale Parameter sind:

  • Ablaufdatum des Formulars

  • ID des Dateinamenformats

  • ID der temporären Rolle

Integrationsspezifische Informationen sind in eigenen Entitäten zu speichern (siehe dynamicUploadCategory in "dam/category").

Drawio
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNamedynamicUploadCategory
simpleViewerfalse
diagramWidth

...

921
revision2

Die Events leiten von dtoEventAbstract ab und verfügen alle über Referenzen zur  jeweiligen jeweiligen dynamicUpload-Entiät und zum entsprechenden verificationToken. Diese Werte werden in einem Kontext-Objekt gespeichert, das in jedem DynamicUpload-Event zur Verfügung steht, da diese Events von OnPopulateDynamicUploadAbstract ableiten.

Über diese Kombination Werte kann eine Integrationsstelle die jeweilige Entität finden .

Möchte man vermeiden, dass weitere Events ausgeführt werden, so kann man die Wert der Eigenschaft continue auf false setzen.

Image Removed

(z.B. dynamicUploadCategory anhand von dynamicUploadID).

Konfiguration

Die Uploadformulare besitzen eine Konfigurationstabelle (landingPage). Das ist derzeit eine Panel-Tabelle. Das bedeutet, dass die Einstellungen für alle dynamischen Uploadformulare gelten.

Property

Bezeichnung

Beschreibung

backgroundImage

Hintergrundbild

Zeichenkette. Enthält den relativen Pfad zum gewünschten Hintergrundbild.

logo

Logo

Zeichenkette. Enthält den relativen Pfad zum gewünschten Logo.

containerOffsetVersatz des ContainersGanzzahl. Enthält einen Wert von 1-12. Sinnvolle Werte liegen im Bereich von 1-6. Der Container wird um das n/12-fache vom linken Fensterrand nach Rechts versetzt.containerOffsetMobileVersatz des Containers (Mobile Ansicht)Ganzzahl. Enthält einen Wert von 1-12. Sinnvolle Werte liegen im Bereich von 1-6. Der Container wird um das n/12-fache vom linken Fensterrand nach Rechts versetzt.containerWidthBreite des ContainersGanzzahl. Enthält einen Wert von 1-12. Der Container füllt das n/12-fache der verfügbaren Breite.containerWidthMobileBreite des Containers (Mobile Ansicht)Ganzzahl. Enthält einen Wert von 1-12. Der Container füllt das n/12-fache der verfügbaren Breite.

Verwendung

Allgemeines

Alle Events im mehrstufigen Uploadprozess implementieren das Interface dam/upload/lib/event/dynamicUploadEventInterface. Tatsächlich leiten die meisten Events von der Klasse dam/upload/lib/event/adapter/dynamicUploadEventAdapter ab, um nur Methoden zu implementieren, die tatsächlich genutzt werden sollen.Es existiert ein default-Listener (dam/upload/lib/event/dynamicUploadDefaultEvent), welcher ein bestimmtes Basisverhalten bereitstellt (Bereitstellen eines Logos, Umbenennen der Dateien etc.). Die Priorität beträgt 100 und somit ist es möglich dieses Verhalten zu umgehenKlasse Base\Upload\lib\event\OnPopulateDynamicUploadAbstract ab um stets einen geeigneten Kontext bereitzustellen.

Uploadprozess

Um ein dynamisches Uploadformular zu erstellen ist zunächst lediglich eine existierende dynamicUpload-Entität mit einem dazugehörigen Verifizierungstoken notwendig. Mit dem URL-Token des Verifizierungstoken muss nun die URL "yourhost.com/public?request=dam/upload.formUpload&vToken=urlToken" aufgerufen werden. Um sich dich Entitäten erzeugen zu lassen kann die öffentliche Methode dam\upload\engine::createDynamicUpload genutzt werden. Die benötigten Entitäten kann der Integrator auch selbst erzeugen (siehe dam/ui).

Der Upload Prozess besteht aus drei Schritten. Einstiegspunkte für diese Schritte sind öffentliche Methoden. Alle Schritte/öffentlichen Methoden erwarten die URL-Repräsentation eines Verifizierungstoken. Ist dieser nicht vorhanden, fehlerhaft oder abgelaufen, so wird eine generische Fehlermeldung ausgegeben.

Schritt 1 (

...

Base/

...

Upload.formUpload):

Einstiegspunkt für den Uploadprozess ist damBase/uploadUpload.formUpload. Hier wird das Formular initial platziert. In diesem Schritt lässt sich der Header des Formulares Container über das Event onPopulateDynamicUploadHeader anpassen. Das Event enthält ein Array aus headerElement-Objekten, die aus styleguide/brandbox kommen. Entsprechend werden nur headerElement-Objekte dargestellt OnPopulateEntrypoint erweitern. In diesem Event werden wiederum weitere Events ausgelöst:

  • OnPopulateEntrypointHeadline

  • OnPopulateEntrypointForm

  • OnPopulateEntrypointButtons

Standardmäßig wird im Formular das Upload-Feld platziert. Das Upload-Feld lädt Dateien sequentiell hoch und fügt diese einem DynamicUploadProcess-Datensatz hinzu.

Schritt 2 (

...

Base/

...

Upload.

...

dynamicUploadEditSelection):

Wurden die Dateien erfolgreich hochgeladen, so werden deren IDs als contentIDs an dam/uploadwird Base/Upload.formUploadEdit weitergegeben. aufgerufen. Hier wird das Event OnPopulateEdit aufgerufen, welches intern wiederum folgende Events auslöst, um die Inhalte für den Container zu erhalten:

  • OnPopulateFileEntry

  • OnPopulateButtons

Jede hochgeladene Datei ist eine Reihe im Formular. Diese Reihen müssen das input/file-Feld enthalten. Einer Reihe können über das Event onPopulateDynamicUploadForm OnPopulateFileEntry weitere Felder hinzugefügt werden. Das Event dam/upload/lib/event/dto/dtoOnPopulateDynamicUploadForm enthält diese Reihen als Instanzen von dam/upload/lib/map/entityUploadFileRow.

Diese Felder müssen einem bestimmten Namensmuster folgen. Das Präfix für den Parameternamen kann über die Methode getInputNamePrefix der Klasse  dam/upload/lib/map/entityUploadFileRow bezogen werden.

Beispiel: Präfix: inputFileRow[0], Name des Inputs: categoryID. Resultat: inputFileRow[0]['categoryID']Die hinzugefügten Felder folgen keinem Schema. Die Formulardaten werden an den nächsten Request weitergegeben und können dort von weiteren Listenern verarbeitet werden.

Im Container wird außerdem ein Button platziert, welcher den Upload von weiteren Dateien erlaubt.

Schritt 3 (

...

Base/

...

Upload.

...

formDynamicUploadSubmit):

Einen Abschluss findet der Vorgang im Schritt damSchritt Base/uploadUpload.formUploadSubmit. Aus den erhaltenen HTTP-Parameter werden Instanzen der Klasse dam/upload/lib/event/dto/submittedRow gebildet, sofern die in den HTTP-Parametern übertragenen Dateipfade existieren.

Feldvalidierungen

Wenn im zweiten Schritt die Feldinhalte validiert werden sollen, kann das ebenfalls über das Event onEditAfterUpload geschehen. Das entsprechende Event-Objekt besitzt eine Eigenschaft, die ein Array an upload\lib\struct\structDynamicUploadViolation-Objekten erwartet. Diese Objekte benötigen den Namen des fehlerhaften Parameters, die Fehlernachricht und die Nummer der Feldreihe. Die Fehlermeldungen werden wie von base/uiBase als http\response\invalid an das UI gesendet.

...

languagephp
themeRDark
titleErstellen von violations

...

Hier wird das Event OnPopulateResult ausgelöst. Standardmäßig werden die Dateien in einen Systemordner verschoben. Sollte der Pfad der Dateien geändert werden, ist auf die Prioritäten zu achten.

Rechtekonfiguration

Für die Konfiguration der Rollen und Rechte, sollten zumindest die folgenden Schemata verwendet werden.

  • Dynamic Upload (DynamicUploadScheme)

    • Dieses Schema erlaubt die Verwendung der öffentlichen Methoden für den dynamischen Upload und erlaubt es dem Nutzer verschiedene Datensätze zu lesen (MimeTypes, Thumbnails) oder zu verwalten (Dateien, Ordner).

  • Upload (UploadScheme)

    • Dieses Schema ermöglicht das generelle Hochladen von Dateien, indem es das Erstellen von Dateien und Ordnern erlaubt.

Um als Nutzer in der Administrationsoberfläche Uploadformulare erstellen zu können, wird das Schema DAM Uploadformulare (DamDynamicUploadScheme) benötigt.