Product Custom Inputs: Erweiterbarkeit
Product Custom Inputs erweitern: Twig-Funktion für die Eingaben einer Bestellposition, Hooks, Repositories mit Service-IDs, Übersetzungen, Menü-Gruppe und Worker-Modus.
Product Custom Inputs: Erweiterbarkeit
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Das Plugin löst selbst keine eigenen Events aus und liefert keine eigenen Service-Tags zum Einsammeln. Erweitern lässt es sich über Twig-Funktion, Hooks, Templates und Services.
Twig-Funktion
| Funktion | Rückgabe | Beschreibung |
|---|---|---|
mmd_order_item_custom_input_values(item) |
Liste aus label und value |
Die Eingaben einer Bestellposition, formatiert. Leere Liste bei null oder bei einem Datenbankfehler |
mmd_product_custom_inputs_plugin_version() |
String | Installierte Plugin-Version, zeigt der Admin im Seitenkopf an |
Mit der ersten Funktion lassen sich die Eingaben in eigenen Templates ausgeben, etwa in einer Rechnung oder einem Lieferschein.
Hooks
Alle Anzeigestellen sind Twig Hooks, aufgelistet in der Tabelle der Storefront-Seite. Du kannst jeden Hook mit einem eigenen Template ersetzen oder daneben eigene Hookables mit anderer Priorität einhängen.
Repositories
| Interface | Zweck |
|---|---|
ProductCustomInputFieldRepositoryInterface |
Felder eines Produkts, nach Position sortiert (findByProductOrderedByPosition()) |
OrderItemCustomInputValueRepositoryInterface |
Werte einer Bestellposition (findByOrderItem()) |
Beide lassen sich über die Service-ID überschreiben. Das Feld-Repository hat die ID mmd_sylius_product_custom_inputs_plugin.repository.product_custom_input_field, die Sylius-Resource heißt mmd_sylius_product_custom_inputs_plugin.product_custom_input_field.
Übersetzungen
Alle Texte des Plugins liegen unter mmd_sylius_product_custom_inputs_plugin.ui.* in der Domain messages, mitgeliefert sind de_DE und en_US. Eigene Übersetzungen oder Anpassungen legst du in deiner Anwendung unter denselben Schlüsseln ab. Die Fehlermeldungen der Validierung (date_invalid, time_invalid, step_invalid, date_disabled) stehen in der Domain validators.
Admin-Menü
Das Plugin hängt seinen Eintrag in die Gruppe MMKreativ Plugins (MenuGroup::CODE = 'mmd_plugins'). Andere Plugins oder die Anwendung können dieselbe Gruppe nutzen, damit alle Einträge unter einem Menüpunkt landen.
Worker-Modus
CartItemCustomInputValueCollector hält Daten nur innerhalb eines Requests und implementiert ResetInterface. Unter FrankenPHP-Worker, RoadRunner oder Swoole wird er automatisch zwischen den Requests zurückgesetzt, ohne zusätzliche Konfiguration.