Aufbau des Plugins
Das Plugin input/select
bildet einen Wrapper für die existierenden Input-Typen select
& selectKeyValue
. Die Besonderheit ist, dass durch die Definition einer Hilfsmethode die Enumeration des Feldes manipuliert werden kann.
Somit ist man nicht auf statische Werte begrenzt.
Konfiguration
Um das Plugin nutzen zu können, ist die gewünschte Spalte in der widget.json zu konfigurieren.
{ "identifier": "cmsPageTemplate", "labels": { "de": "Template", "en": "Template" }, "formType": "feature", "feature": "input/select.select/key/value", "configuration": { "enumerationPlugin": "cms/page", "enumerationFunction": "getDomainThemeTemplates" }, "isSearch": true, "isIdentifier": true },
Bereich | Beschreibung |
---|---|
feature | Das gewünschte Feature. input/select bietet select & select/key/value . |
enumerationPlugin | Das Plugin, das die Logik zum Bereitstellen der Enumeration enthält. |
enumerationFunction | Die Methode, die die Enumeration bereitstellt. In lowerCamelCase. |
Verwendung
Die Methoden, die in der Konfiguration definiert werden, unterliegen inhaltlich keiner Beschränkungen. Es muss lediglich ein Array mit Schlüssel-Werte-Paaren zurückgegeben werden.
Das Select-Input-Feld speichert die Werte des Arrays.
Das Select-Key-Value-Input-Feld hingegen speichert die Schlüssel.
Konfiguration für die Mehrfachauswahl
Um eine Mehrfachauswahl von dynamischen Enumerationen zu ermöglichen muss die "feature" Notation so aussehen: "input/select.select/key/value/multiple"
{ "identifier": "cmsPageTemplate", "labels": { "de": "Template", "en": "Template" }, "formType": "feature", "feature": "input/select.select/key/value/multiple", "configuration": { "enumerationPlugin": "cms/page", "enumerationFunction": "getDomainThemeTemplates" }, "isSearch": true, "isIdentifier": true },
Beispiel Feld für Lieferland
{ "enumerationFunction": "getEnumerationDeliveryCountrySelect", "enumerationPlugin": "shop/delivery", "feature": "input/select.select/key/value" }