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.
Verwendung
Verwendung in Datenmodellierung
{ "isInputLabeled": [true|false] }
Verwendung in Widgets
{ // [...], "formType": "Select", "configuration": { // [...], "source": "[Input/Select.select/key/value|Input/Select.select/key/value/multiple]" "enumerationPlugin": "[pluginName]", "enumerationFunction": "[functionName]" } } // [...] }
Konfiguration
Parametererklärung
Bezeichung | Mögliche Werte | Beschreibung |
---|---|---|
source | Input/Select.select/key/value oder Input/Select.select/key/value/multiple | Legt fest, ob das Feld eine Einfach oder Mehrfachauswahl ist. |
enumerationPlugin | Das Plugin, das die Logik zum Bereitstellen der Enumeration enthält. | |
enumerationFunction | Die Methode, die die Enumeration bereitstellt. In lowerCamelCase. | Legt fest, welche Methode im ausgewählten Plugin gewählt wird, um die Enumeration bereitzustellen. |
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" }