Info | ||
---|---|---|
| ||
Produktanforderung: /wiki/spaces/PE/pages/24814394 |
Wizards
Neue Wizards können in jedem Plugin im Verzeichnis /wizard angelegt werden, wurde bisher jedoch nur priorisiert in den collections. Nun wird ein weiterer Ordner angelegt, welcher den Identifier des Wizards angesehen wird (vergleichbar wie eine Gruppe in der sich mehrere Wizards befinden können). Hier können die einzelnen wizards angelegt werden (im json-Format). Jeder wizard in diesem Ordner wird nun auf einer Wizard-Liste dargestellt, wenn der Identifier in einer dashboard.json eingetragen wird. Folglich ein Beispiel einen dashboard.json Eintrags:
...
language | php |
---|---|
theme | RDark |
...
Wizards bieten die Möglichkeit Datensätze in einem geführten Prozess zu bearbeiten. Um das zu ermöglichen können Wizards in jeder App im Verzeichnis resources/wizards
angelegt werden. Ein Wizards besteht aus einer JSON-Datei (siehe nachfolgendes Beispiel).
Codeblock | ||
---|---|---|
| ||
{ "name": { "de": "NAME DES WIZARDS", "en": "NAME DES WIZARDS" }, "targeticon": "blankfa-sharp fa-light fa-vial", "hrefsteps": [ "", { "attributes": { "data-requestrepository": "base/wizard.list/available&identifier=IDENTIFIER"ShopGroup", }, "hasRighthandler": "base/wizard.list/available"EntityList", } ] |
Preset
Presets sind strukturiert in <root>/<repositories>. Darin liegen die einzelnen repositories mit deren Datensätzen benannt nach deren entity-Feldern. Folglich könnte ein preset für eine einzige Shop-Gruppe aussehen:
Codeblock | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?>
<root>
<repositories>
<repository name="shopGroup">
<entity reference="1">
<column name="id">1</column>
<column name="shopGroupActive">1</column>
<column name="shopGroupVisibilityMainMenu">1</column>
<column name="shopGroupVisibilityHome">1</column>
<column name="shopGroupVisibilitySidebar">1</column>
<column name="shopGroupName">Befestigung</column>
<column name="shopGroupShortText"/>
<column name="shopGroupDescription"><![CDATA[<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. </p>]]> </column>
<column name="shopGroupImage">plugin/remote/bundle/shop/images/eyecatcher/shutterstock_670360852.jpg</column>
<column name="sortNumber">1</column>
<column name="shopGroupArticleFinderConfigID">0</column>
<column name="shopGroupMetaTitle"/>
<column name="shopGroupMetaKeywords"/>
<column name="shopGroupMetaDescription"/>
<column name="shopGroupMetaRobots"/>
</entity>
</repository>
</repositories>
</root>
|
Mit der entity-reference können Verknüpfen gemacht werden. Hat man zusätzlich zur Gruppe mit der reference 1 noch einen Artikel mit der reference 2, können diese als <relation> angegeben werden. So würde das aussehen:
Codeblock | ||||
---|---|---|---|---|
| ||||
<relations>
<relation from="1" to="2"/>
</relations>
|
Der Wizard liest presets aus und importiert dessen Daten. Im wizards können preset importiert werden, indem man als handler "presetList" angibt und in dessen "configuration" den Pfad dieser Datei. Relations gibt man in der "configuration" als "forceRelation" (array) an. Will man z.B. Artikelgruppen mit Artikel verknüpfen, schreibt man beide Tabellen-Identifier in die "forceRelations". Mehr Informationen zu den Handlern auf der /wiki/spaces/PE/pages/24814394.
Codeblock | ||||
---|---|---|---|---|
| ||||
"repository": "shopGroup", "handler": "presetList", "name": { "de": "Artikelgruppen", "en": "article groups" }, "configuration": { "file": "plugin/remote/bundle/shop/presets/presetExampleArticles.xml", "allowMultiple": true, "systemStep": true, "forceRelations": [ "shopGroup", "shopArticle" ] } "name": { "de": "Step 1", "en": "Step 1" }, "configuration": { "allowMultiple": true, "allowEmpty": true } } ] } |
Der Wizard ist bspw. im Mulit-Kontextmenü einer Datensatzliste erreichbar. Dort kann man Datensätze nacheinander
bearbeiten. Es ist möglich diese Konfigurationsdateien für Teilprozesse dynamish zu schreiben und dadurch anschließend im geführten Prozess zu nutzen.
Handler
Der Wizard liest Presets aus und importiert dessen Daten. Der Wizards stellt unterschiedliche Handler zur Verfügung, sodass sich unterschiedliche Anforderungen erfüllen lassen. Folgende Handler stehen zur Verfügung:
EntityList
EntityForm
EntityList
Verwenden Sie diesen Handler, um Datentabellen zu verarbeiten.
EntityForm
Verwenden Sie diesen Handler, um einen Datensatz (aus einem Preset oder einer Datentabelle) nach Auswahl zu bearbeiten.