...
...
...
...
v5.0
...
...
Mit dem Editor "Formular (verschachtelt)", kurz "Editor Nested" lassen sich mehrseitige Dokumente, die aus Unterelementen bestehen, aufbauen. Dabei werden die einzelnen Seiten als Rahmen-Templates definiert, auf denen beliebige Print-Templates verschachtelt (englisch "nested") ausgegeben werden können. Diese Print-Templates können anhand einer x/y-Position auf dem Rahmen-Template platziert werden. Der Vorteil dieser Vorgehensweise ist, dass Print-Templates mehrfach verwendet werden können. Technisch gesehen wird die Logik des Editors "Formular (einfach)" für jedes Untertemplate ausgeführt, wodurch der Nested Editor nur die Platzierungslogik auf dem Rahmen-Template mitbringen muss.
...
Anwendungsfälle sind zum Beispiel wiederkehrende Prospekte, Broschüren oder mehrseitige Flyer.
...
Voraussetzungen
Um den Editor Nested nutzen zu können, wird das Produkt publish benötigt. Im CMS muss die Seite mit dem Shortlink "editorNested" angelegt und konfiguriert sein.
Konfiguration
Basiskonfiguration
Es wird eine Artikelvorlage mit Editor "Formular (verschachtelt)" angelegt und als Kind-Datensatz an den gewünschten Artikel verknüpft.
Für jede gewünschte Seite des fertigen Print-Produkts muss ein Datensatz in der Tabelle "Bausteine" angelegt und als Kind an die Artikelvorlage verknüpft werden. In der Kind-Ansicht der Artikelvorlage werden diese Datensätze als "Verschachtelte Templates" dargestellt, auch "Bereiche" genannt.
Ein Bereichs-Datensatz benötigt als Kind ein Print-Template, das als Rahmen-Template fungiert. Es kann sich dabei um ein leeres A4-Template handeln. Es dient als Container dazu, die darunter liegenden Bausteine darauf zu platzieren.
Desweiteren Des weiteren hängen am Bereich die "Bausteine". Sie werden ebenfalls in der Tabelle "Bausteine" angelegt und an die übergeordneten Bereiche verknüpft. Sie entsprechen den verschiedenen Bausteinen auf dem Rahmen-Template und erscheinen im Frontend als Reiter (siehe Screenshot oben). Beim Baustein können x- und y-Koordinate gepflegt werden. Damit wird angegeben, an welcher Position der Baustein auf dem darüber liegenden Rahmen-Template von rechts oben in Millimetern platziert wird.
...
Für die Ausgabe wird die Logik von "Formular (einfach)" verwendet. Für das Eingabeformat "HTML5-Editor" und das Ausgabeformat PDF wird nun das Print-Template als dediziertes PDF mit den links eingegebenen Formularwerten gerendert und danach an der Position, die im übergeordneten Baustein definiert ist, auf das Rahmen-Template des wiederum übergeordneten Bereichs platziert. Dies wird für alle Bausteine wiederholt, was dann zur fertigen PDF-Seite mit verschiedenen Elementen aus verschiedenen Print-Templates führt.
Drawio | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Formularmaske
Jedes Print-Template bringt seine eigene Formularmaske mit, diese wird im Print-Template-Datensatz zugewiesen und muss unter Datenmodellierung > Formularmaske angelegt sein. Sie kann beliebige Felder enthalten. Felder können auch in Feldgruppen zusammengefasst werden und erscheinen dann im Nested Editor als Reiter. Alle nicht in einer Gruppe befindlichen Felder werden in einem Reiter "Allgemein" zusammengefasst.
...
Der Editor Nested kann mit verschiedenen Eingabeformaten umgehen. So können Print-Templates als HTML5-Editor-Template im System angelegt werden. Hierbei können die Feldwerte der dem Print-Template zugeordneten Formularmaske verarbeitet werden. Alternativ kann ein Word-Template im Docx-Format verwendet werden. In diesem werden Platzhalter mit $FELD-IDENTIFIER$ durch die im Formular gepflegten Werte ersetzt.
...
Ausgabeformate
Der Editor Nested unterstützt als Ausgabeformate "Verschachteltes PDF" oder "Verschachteltes Word-Dokument". Das Ausgabeformat wird bei der Artikelvorlage gepflegt. Da ein Word-Dokument fließt, kann ein Bereich mehr als eine Seite haben. In diesem Fall erscheint im Editor eine Seiten-Blätterfunktion, mit der sich die Seiten des Bereichs-Dokuments durchblättern lassen.
...
Um eine Druckfreigabe zu erzwingen, kann dieser Bestellprozess konfiguriert werden. Der Benutzer gelangt dann auf eine spezielle Seite, auf der er eine Vorschau aller Seiten der von ihm gestalteten Artikelvorlage sieht, sowie explizit eine Druckfreigabe per Checkbox setzen muss. Ferner müssen AGB und Widerrufsbelehrung akzeptiert werden. Bei Bestätigung wird eine Bestellung angelegt.
...
Double-Opt-In
Über diesen Bestellprozess besteht die Möglichkeit, die im Nested-Formular gesammelten Daten in einen Datenpool zu übertragen. Dies wurde in Verbindung mit deaktivierter Vorschau (siehe unten) entwickelt, um komplexe verschachtelte Formulare für die Sammlung von Daten zu nutzen. Da hierzu ein Double-Opt-In der Person notwendig ist, die das Formular ausfüllt, muss es zwingend ein E-Mail-Feld geben, das als Pflichtfeld definiert ist. Die Konfiguration hierfür wird im Feld "Vorlagenkonfiguration" der Artikelvorlage im JSON-Format gemacht:
Codeblock | ||
---|---|---|
| ||
form: datapool: 1 fieldMail: personEmailAdress1 repository: bewerberDatabase |
Einstellung | Beschreibung |
---|---|
datapool | Die ID des Datenpools, in dem die publish-Tabelle angelegt ist. |
fieldMail | Der Identifier des Feldes, an dessen Wert die Double-Opt-In-Mail versendet werden soll. |
repository | Der Identifier der publish-Tabelle,in diedie Formulardaten in einem neuen Datensatz gespeichert werden sollen. |
Nach Ausfüllen des Formulars werden die gepflegten Wert in einer Übersicht gelistet, nach Bestätigung wird die Double-Opt-In-Mail verschickt. Erst bei deren Bestätigung wird der Datensatz angelegt.
...
Hierzu können unter Softwarekonfiguration > Feldkonfiguration beim Formular-Feld folgende Werte definiert werden:
Einstellung | Beschreibung |
---|---|
columns | Anzahl der Spalten im Raster des Styleguides, über die sich das Feld in der Breite erstreckt, z.B. 6 |
vertical | true oder false, bei true wird das Feld nicht in einer neuen Zeile dargestellt. |
Constraints
Wird das Formular zum Sammeln von Daten verwendet, sind Constraints unerlässlich. Damit können z.B. Pflichtfelder definiert oder bestimmte Formate (z.B. Datum) erzwungen werden, ohne die das Formular nicht durchbestellt werden kann. Constraints werden unter Datenmodellierung > Feld direkt beim Formular-Feld unter "Feldeinschränkungen" gepflegt. Beispiel:
Codeblock | theme | RDark
---|
NotBlank() Regex(pattern=/[^@]+@[^\.]+\..+/) |
...
Anwenderdaten-Workflows können zur Bearbeitung im Nested-Editor aktiviert werden. Dafür muss eine aktive Workflow-Warteschlange für den zugehörigen Session-Artikel existieren:
...
Das Feature kann in der Artikelvorlage im Feld Workflow-Steps im Verschachtelten Editor auslösen aktiviert werden.
Im Nested-Editor erscheint daraufhin rechts oben (über dem Warenkorb-Button) ein Button, der mit der Bezeichnung des nächsten Workflow-Schritts benamt ist, sofern der eingeloggte User das Recht hat, den Workflow-Schritt-Datensatz zu lesen.
...
Ein Klick auf den Button öffnet ein Modal:
...
Hier können weitere Einstellungen gemacht werden, sofern die zur Workflow-View gehörende config.json eine Spalte mit dem Attribut "isUseableInPublic": true, enthält, z.B.:
Codeblock | ||
---|---|---|
| ||
{ "callbackTypes": [ "shopArticle", "shopOrder", "shopSessionArticle" ], "columns": { "shopUser": { "formType": "feature", "feature": "input/foreignKey.single", "isUseableInPublic": true, "configuration": { "relation": { "repository": "shopUser", "column": "shopUserMail" } }, "i18n": { "de": "Shop-Anwender", "en": "Shop-User" } } } } |
...
Die notwendige Einstellung findet sich bei der Artikelvorlage im Reiter Augabensteuerung:
...
Es gibt 2 Einstellungsmöglichkeiten:
Button "PDF-Vorschau" verstecken, wenn Anwenderdaten-Workflow-Warteschlange vorhanden und nicht abgeschlossen
Der Button PDF-Vorschau wird nicht dargestellt, sofern eine Workflow-Warteschlange existiert und nicht abgeschlossen wurde.Button "PDF-Vorschau" verstecken, wenn Anwenderdaten-Workflow-Warteschlange vorhanden und erster Step ausgeführt
Der Button PDF-Vorschau wird nicht dargestellt, wenn Workflow-Warteschlange existiert und mindestens der erste Step ausgeführt wurde.
In beiden Fällen werden die Buttons wieder dargestellt, sobald die Workflow-Warteschlange abgeschlossen wurde.
Ausgabensteuerung
In Verbindung mit den Editor Nested bietet sich die Möglichkeit einer ausgabengesteuerten Veröffentlichung von Nested-Dokumenten. Dabei werden die Artikel nicht über den Warenkorb bestellt, sondern im Backend anhand von Ausgaben vordefiniert. Pro Ausgabe gibt es eine Mastervorlage, die bestimmte Felder des Editors mit Werten vorbelegt. Auf Basis dieser Mastervorlage erhält dann der Kunde seine eigene Ausgabe, bei der bestimmte Felder verändert werden können. Hierfür wird seine Ausgabe mit seinen Anwenderdaten zusammengeführt. Dies hat den Zweck, dass fest stehende Daten wie Logo oder Firmenname nicht bei jeder Ausgabe neu erfasst werden müssen.
Die Ausgabensteuerung kann über den blauen Button in der Artikelübersicht geöffnet werden. Dieser erscheint bei Artikeln, die eine Artikelvorlage mit Editor Nested haben:
...
Über "Entwurf erstellen" kann eine neue Ausgabe angelegt werden. Dieser Entwurf entspricht der Ausgabe. Folgende Einstellungen sind möglich:
Einstellung | Beschreibung |
---|---|
Standard-Entwurf | Ein Standard-Entwurf ist der Hauptentwurf für das Print-Produkt, von dem alle Ausgaben abgeleitet werden |
ID des Entwurfs | Hier wird die ID des Entwurfs-Entities gespeichert, damit die Kundenausgaben der Hauptausgabe zugeordnet werden können. Dieser Wert muss bei der Anlage eine Ausgabe immer 0 sein |
Entwurfs Workflow | Ein Workflow, der für die Ausgabe durchlaufen wird |
Anwenderdaten Workflow | Ein Workflow, der für jede Kundenausgabe durchlauen wird |
Name des Entwurfs | Der Name der Ausgabe |
Entwurf zur Bearbeitung gesperrt | Ist das Häkchen gesetzt, lässt sich der Entwurf der Ausgabe nicht mehr im Frontend verändern. Dies muss vor der Erstellung der Kundenausgaben passieren, da sonst Änderungen am Entwurf dort nicht mehr wirksam werden. Diese Checkbox kann z.B. über einen Workflow-Step im Entwurfs-Workflow automatisch zu einem gewünschten Zeitpunkt gesetzt werden. |
Ausgabe abgeschlossen | Ist das Häkchen gesetzt, können die Kundenausgaben im Frontend nicht mehr geöffnet werden |
Die Vorlage des Entwurfs (Master) kann über den blauen Button bearbeitet werden. Dabei öffnet sich der Editor Nested im Frontend und die Felder können befüllt werden. Über den Play-Button lässt sich der Workflow für die Ausgabe starten. Dabei wird eine Workflow-Warteschlange vom definierten Entwurfsworkflow angelegt:
...
Anwenderdokumente lassen sich nun über das Plus-Symbol anlegen:
...
Im sich öffnenden Modal wird ein Kunde ausgewählt:
...
Über das Plus-Symbol kann dann das Anwenderdokument angelegt werden:
...
Dabei wird eine Kopie des Entwurfs (Master) erstellt und über das Feld "ID des Entwurfs" der Ausgabe zugewiesen. Ab diesem Zeitpunkt findet der Kunde seinen Entwurf in seinem Warenkorb und kann ihn bearbeiten und bestellen.Von der Ausgabensteuerung im Backend kann der Entwurf im Admin-Modus ebenfalls geöffnet und bearbeitet werden.
...
Folgende Entities sind im Rahmen der Ausgabensteuerung relevant:
Name | Beschreibung |
---|---|
w2pMasterData | Enthält die Vorbelegung der Nested-Felder eines Benutzers für eine Artikelvorlage, sowie die Auflage und die Information, ob die Anewnderdaten freigegeben wurden.. Die Anwenderdaten können unter "Mein Konto" gepflegt werden. |
sessionArticle | Die Instanz des Artikels im Warenkorb. |
sessionArticleNestedRelease | Enthält für einen Session-Artikel die für die Ausgabensteuerung relevanten Informationen, wie ID des Workflows, ID der Artikelvorlage, ID des Entwurfs |
draftDocument | Dient als Verbindung von Session-Artikel und Anwenderdaten, referenziert die ID des Session-Artikels und der Anwenderdaten |
nestedDocument | Enthält den Inhalt der Felder einer Nested-Vorlage |
Drawio | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|