Eigene Plugin-Datenmodelle, Tabellen, Import und Backend-Code.
Plugin-Datentypen ermöglichen eigene Datenmodelle innerhalb eines Plugins. Ein Datentyp definiert, welche Felder ein Datensatz besitzt, wie Datensätze in Tabellen erscheinen und welche zusätzlichen Aktionen auf der Übersichtsseite verfügbar sind.
Die Datensätze werden environment-, plugin- und typbezogen gespeichert. Dadurch können mehrere Plugins eigene Datentypen mit getrennten Datenbeständen bereitstellen.
Im Plugin-Editor werden Datentypen im Bereich Datentypen gepflegt. Pro Datentyp werden unter anderem konfiguriert:
Interner Name: technischer Key des Datentyps.Singular und Plural: Manager-Bezeichnungen für Einzel- und Listenansicht.Attribute: Feldschema des Datensatzes. Zusätzlich steht der Feldtyp QR-Code mit Präfix und Suffix zur Verfügung.In Seitenleiste anzeigen: macht den Datentyp im Manager-Navigationskontext sichtbar, sofern die Umgebung das Plugin installiert hat.CSV-Import aktivieren: ergänzt auf der Datentyp-Übersicht die Aktion Importieren.Import-Identifier Feld: Feld-Key, über den bestehende Datensätze beim Import aktualisiert werden können.Tabellen-Definition: steuert die Spalten und Darstellung der Übersichtstabelle.beforeSave Backend-JS Code: läuft vor dem Speichern eines Datensatzes.onSave Backend-JS Code: läuft nach dem Speichern eines Datensatzes.Das Attributschema eines Plugin-Datentyps besteht aus Feld-Keys mit einer Felddefinition. Jedes Feld hat mindestens einen type und meist ein label. Je nach Typ können weitere Einstellungen wie required, default, options, schema, payload oder multi gesetzt werden.
Die wichtigsten verfügbaren Typen sind:
string: kurzer Text. In der Schema-Oberfläche kann zusätzlich die Darstellung gewählt werden: normaler Text, mehrzeiliger Text oder WYSIWYG.integer: ganze Zahl.float oder number: Dezimalzahl.boolean: Ja/Nein-Feld.date und datetime: Datum bzw. Datum mit Uhrzeit, wenn der jeweilige Form-Kontext diesen Typ unterstützt.option: Auswahlfeld mit options, zum Beispiel [{ value: "draft", label: "Entwurf" }].file oder file_selector: Datei aus dem Filemanager, je nach Kontext auch mit Vorschau.object: verschachteltes Objekt mit eigenem schema.array: Liste von Einträgen. Das schema beschreibt die Felder eines Eintrags.qrcode: Zusatztyp bei Plugin-Datentypen. Er erzeugt QR-Code-Werte und kann mit Präfix und Suffix konfiguriert werden.relation: Verknüpfung zu einem anderen Datensatz.Relationen werden als Autocomplete-Felder dargestellt und speichern die ID des Ziel-Datensatzes zusammen mit dem Zieltyp. Als Ziel kann entweder ein anderer Plugin-Datentyp oder ein erlaubtes Simplebis-Modell gewählt werden. Für Plugin-Datentypen enthält das payload den Plugin-Bezug und den Datentyp-Key, zum Beispiel payload: { type: "plugin_datatype", _plugin: "...", key: "winzer" }. Für Simplebis-Modelle enthält das payload den Modell-Key, zum Beispiel payload: { type: "simplebis_model", model: "customers" }.
Als Simplebis-Relationsziele sind aktuell verfügbar: environments_users (Benutzer), customers (Kunden), suppliers (Lieferanten), articles (Artikel), articles_categories (Artikelkategorien) und shops (Shops). Mit multi: true wird aus der Relation eine Mehrfachauswahl; gespeichert wird dann eine Liste von Ziel-Datensatz-IDs.
Bei Plugin-Datentyp-Relationen sucht der Autocomplete nach typischen Bezeichnungsfeldern wie name, title oder label. Wenn in der Tabellen-Definition des Ziel-Datentyps ein Mapping gesetzt ist, kann dieses Feld ebenfalls als Label verwendet werden. Bei Simplebis-Modellen nutzt simplebis passende Such- und Label-Felder, zum Beispiel Kundennamen, Lieferantennamen, Artikelnummern oder URL-Slugs.
Für verschachtelte Daten werden object und array verwendet. Ein object speichert zusammengehörige Felder als Objekt, zum Beispiel Maße mit Breite und Höhe. Ein array speichert mehrere gleichartige Einträge, zum Beispiel Ansprechpartner, Links oder wiederholbare Inhaltsblöcke. In beiden Fällen beschreibt schema die inneren Felder.
Für saubere Datenmodelle sollten Feld-Keys technisch stabil bleiben. Labels können später geändert werden, aber geänderte Keys wirken sich auf gespeicherte Datensätze, Tabellen-Definitionen, Imports, Website-Kontexte und Plugin-Code aus.
Für einen installierten Plugin-Datentyp stellt simplebis eine Übersichtsseite bereit. Dort zeigt eine Datatable die Datensätze des Datentyps. Über Anlegen wird ein neuer Datensatz erstellt; vorhandene Zeilen können geöffnet und bearbeitet werden.
Die Eingabemaske wird direkt aus dem Attributschema des Datentyps erzeugt. Beim Speichern setzt simplebis automatisch Environment, Plugin und Typ-Key. Wenn Backend-Code hinterlegt ist, kann dieser Daten vor dem Speichern validieren oder ergänzen und nach dem Speichern weitere Aktionen auslösen.
Datentypen können eigene Aktionen auf der Übersichtsseite definieren. Eine Aktion kann ein Link sein oder ein Plugin-Formular öffnen. Dadurch lassen sich beispielsweise Assistenten, Sammelaktionen oder Datensatzgeneratoren direkt neben der Tabelle platzieren.
Ist der CSV-Import aktiv, erscheint zusätzlich Importieren. Wenn ein Import-Identifier gepflegt ist, kann der Import vorhandene Datensätze anhand dieses Feldes aktualisieren; ohne Identifier dient der Import vor allem der Neuanlage.
Mit Plugin-Datentypen lassen sich etwa Partnerlisten, Veranstaltungs-Layouts, Landingpage-Inhalte, Gutschein-Kampagnen, externe Mapping-Tabellen oder interne Konfigurationsdatensätze abbilden. In Kombination mit Website-Kontexten können diese Daten später auf Webseiten ausgegeben werden.