Interne Struktur eines Data Container Arrays
Ein Data Container Array ist in 6 Sektionen unterteilt. Die erste Sektion speichert globale Informationen wie z.B. Relationen zu anderen Tabellen. Die zweite und dritte Sektion legt fest, wie Datensätze aufgelistet werden und welche Aktionen ein Benutzer ausführen kann. Die vierte Sektion definiert verschiedene Gruppen von Eingabefelder (Paletten) und die letzten beiden Sektionen beschreiben die Eingabefelder im Detail.
Tabellenkonfiguration ¶
Die Tabellenkonfiguration legt unter anderem fest, welcher Data Container-Typ verwendet wird oder ob Relationen zu anderen Tabellen bestehen. Sie können außerdem die Versionierung aktivieren und festlegen, was mit Kinddatensätzen beim Löschen von Elterndatensätzen passiert.
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| label | &$GLOBALS['TL_LANG'] string | Die Bezeichnung wird in der Seitenstruktur und in der Dateiverwaltung verwendet. Enthält normalerweise eine Referenz auf das Spracharray. |
| ptable | Elterntabelle string | Name der bezogenen Elterntabelle (table.pid = ptable.id). |
| ctable | Kindtabellen array | Name der bezogenen Kindtabellen (table.id = ctable.pid). |
| dataContainer | Data Container string | Table (Tabellen), File (lokale Konfigurationsdatei) oder Folder (Dateiverwaltung). |
| validFileTypes | Dateitypen string | Kommagetrennte Liste gültiger Dateiendungen (nur für Dateibäume). |
| uploadScript | Dateiname string | Dateiname des FancyUpload-Skripts im Ordner system/config (ohne Dateiendung). |
| closed | true/false boolean | Verbietet das Anlegen neuer Datensätze in der Tabelle. |
| notEditable | true/false boolean | Verbietet das Bearbeiten der Tabelle. |
| switchToEdit | true/false boolean | Aktiviert die "Speichern und Bearbeiten"-Schaltfläche beim Anlegen eines neuen Datensatzes (nur Sortierungsmodus 4). |
| enableVersioning | true/false boolean | Aktiviert das Anlegen einer neuen Version beim Speichern eines Datensatzes. |
| doNotCopyRecords | true/false boolean | Verhindert die Duplizierung der Kinddatensätze, wenn ein Datensatz der Elterntabelle dupliziert wird. |
| doNotDeleteRecords | true/false boolean | Verhindert die Löschung der Kinddatensätze, wenn ein Datensatz der Elterntabelle gelöscht wird. |
| onload_callback | Callback-Funktion array | Ruft eine Callback-Funktion beim Initialisieren des Data Containers auf und übergibt das DataContainer-Objekt als Argument. |
| onsubmit_callback | Callback-Funktion array | Ruft eine Callback-Funktion nach der Aktualisierung eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument. |
| ondelete_callback | Callback-Funktion array | Ruft eine Callback-Funktion beim Löschen eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument. |
| oncut_callback | Callback-Funktion array | Ruft eine Callback-Funktion beim Verschieben eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument. Hinzugefügt in Version 2.8.2. |
| oncopy_callback | Callback-Funktion array | Ruft eine Callback-Funktion beim Duplizieren eines Datensatzes auf und übergibt die Insert ID sowie das DataContainer-Objekt als Argument. Hinzugefügt in Version 2.8.2. |
Datensätze auflisten ¶
Das Auflistungsarray legt fest, wie Datensätze aufgelistet werden. Die Contao Core-Engine unterstützt drei Ansichen: den List View, den Parent View und den Tree View. Sie können verschiedene Filter- und Sortieroptionen setzen und eigene Bezeichnungen einfügen.
Sortieroptionen
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| mode | Sortierungsmodus integer | 0 Keine Sortierung 1 Sortierung nach einem festen Feld 2 Sortierung nach einem variablen Feld 3 Sortierung anhand der Elterntabelle 4 Darstellung der Kinddatensätze eines Elterndatensatzes (vgl. Stylesheets-Modul) 5 Darstellung als Baum (vgl. Seitenstruktur) 6 Sortierung der Kinddatensätze anhand eines Baumes (vgl. Artikelverwaltung) |
| flag | Sortierflag integer | 1 Aufsteigende Sortierung nach Anfangsbuchstabe 2 Absteigende Sortierung nach Anfangsbuchstabe 3 Aufsteigende Sortierung nach den ersten beiden Buchstaben 4 Absteigende Sortierung nach den ersten beiden Buchstaben 5 Aufsteigende Sortierung nach Tag 6 Absteigende Sortierung nach Tag 7 Aufsteigende Sortierung nach Monat 8 Absteigende Sortierung nach Monat 9 Aufsteigende Sortierung nach Jahr 10 Absteigende Sortierung nach Jahr 11 Aufsteigende Sortierung 12 Absteigende Sortierung |
| panelLayout | Paneellayout string | search zeigt das Suchfeld an sort zeigt das Sortiermenü an filter zeigt die Filtermenüs an limit zeigt das Limitmenü an Trennen Sie die Menüs mit Komma (= Abstand) oder Strichpunkt (= neue Zeile), also z.B. sort,filter;search,limit. |
| fields | Standard-Sortierfelder array | Eines oder mehrere Felder, anhand derer die Tabelle sortiert wird. |
| headerFields | Header-Felder array | Eines oder mehrere Felder, die im Header des Parent View angezeigt werden (nur Sortierungsmodus 4). |
| icon | Baumsymbole string | Pfad zu einem Symbol, das oberhalb des Baumes angezeigt wird (nur Sortierungsmodus 5 und 6). |
| root | Wurzeldatensätze array | IDs der Wurzeldatensätze (Pagemounts). Wird normalerweise automatisch gesetzt. |
| filter | Abfragefilter array | Ermöglicht das Hinzufügen eigener Filter als Arrays, z.B. array('status=?', 'active'). Hinzugefügt in Version 2.9.0. |
| disableGrouping | true/false boolean | Ermöglicht das Deaktivieren der Gruppenüberschriften im List View und Parent View. |
| paste_button_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung der Einfüge-Schaltflächen ausgeführt. |
| child_record_callback | Callback-Funktion array | Wird zur Darstellung der Kinddatensätze ausgeführt (nur Sortierungsmodus 4). |
| child_record_class | CSS-Klasse string | Ermöglicht das Hinzufügen einer CSS-Klasse zu den Parent View-Elementen. |
Bezeichnungen
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| fields | Felder array | Eines oder mehrere Felder, die in der Liste angezeigt werden. |
| format | Format-String string | HTML-Zeichenkette zur Formatierung der angezeigten Felder (z.B. <strong>%s</strong>). |
| maxCharacters | Anzahl an Zeichen integer | Maximale Länge der Bezeichnung. |
| group_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung der Gruppennamen ausgeführt. |
| label_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung der Bezeichnung ausgeführt. |
Aktionen ¶
Das Aktionsarray ist in zwei Bereiche unterteilt: globale Aktionen, die sich auf die Tabelle beziehen (z.B. mehrere Datensätze auf einmal bearbeiten), sowie reguläre Aktionen, die sich auf einen bestimmten Datensatz beziehen (z.B. Bearbeiten oder Löschen).
Globale Aktionen
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| label | &$GLOBALS['TL_LANG'] string | Bezeichnung der Schaltfläche. Enthält normalerweise eine Referenz auf das Spracharray. |
| href | URL-Fragment string | URL-Fragment, das beim Anklicken der Schaltfläche an die URL angehängt wird (z.B. act=editAll). |
| class | CSS-Klasse string | CSS-Klasse der Schaltfläche. |
| attributes | Zusätzliche Attribute string | Zusätzliche Attribute wie z.B. Eventhandler oder Style-Definitionen. |
| button_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung des Navigationssymbols ausgeführt. |
Reguläre Aktionen
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| label | &$GLOBALS['TL_LANG'] string | Bezeichnung der Schaltfläche. Enthält normalerweise eine Referenz auf das Spracharray. |
| href | URL-Fragment string | URL-Fragment, das beim Anklicken der Schaltfläche an die URL angehängt wird (z.B. act=edit). |
| icon | Navigationssymbol string | Pfad und Dateiname des Icons. |
| attributes | Zusätzliche Attribute string | Zusätzliche Attribute wie z.B. Eventhandler oder Style-Definitionen. |
| button_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung des Navigationssymbols ausgeführt. |
Felder ¶
Das Felderarray beschreibt die Spalten einer Tabelle. Anhand dieser Metadaten entscheidet die Contao Core-Engine, welches Eingabefeld geladen wird, ob ein Benutzer darauf zugreifen darf und ob es als Sortierkriterium verwendet werden kann.
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| label | &$GLOBALS['TL_LANG'] string | Bezeichnung des Feldes. Enthält normalerweise eine Referenz auf das Spracharray. |
| default | Standardwert mixed | Der Standardwert wird bei der Erstellung eines neuen Datensatzes gesetzt. |
| exclude | true/false boolean | Blendet das Feld für reguläre Benutzer aus. Kann in den Gruppeneinstellungen festgelegt werden (erlaubte Felder). |
| search | true/false boolean | Fügt das Feld dem Suchmenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout"). |
| sorting | true/false boolean | Fügt das Feld dem Sortiermenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout"). |
| filter | true/false boolean | Fügt das Feld dem Filtermenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout"). |
| flag | Sortierflag integer | 1 Aufsteigende Sortierung nach Anfangsbuchstabe 2 Absteigende Sortierung nach Anfangsbuchstabe 3 Aufsteigende Sortierung nach den ersten X Buchstaben (vgl. length) 4 Absteigende Sortierung nach den ersten X Buchstaben (vgl. length) 5 Aufsteigende Sortierung nach Tag 6 Absteigende Sortierung nach Tag 7 Aufsteigende Sortierung nach Monat 8 Absteigende Sortierung nach Monat 9 Aufsteigende Sortierung nach Jahr 10 Absteigende Sortierung nach Jahr 11 Aufsteigende Sortierung 12 Absteigende Sortierung |
| length | Sortierlänge integer | Gibt die Anzahl der Zeichen an, die zur Gruppierung der Datensätze verwendet wird (Sortierflag 3 und 4). Hinzugefügt in Version 2.5.3. |
| inputType | Feldtyp string | text Textfeld password Passwortfeld textarea Textarea select Drop-Down-Menü checkbox Checkbox radio Radio-Button radioTable Tabelle mit Bildern und Radio-Buttons inputUnit Textfeld mit Drop-Down-Menü zur Auswahl der Einheit trbl Vier Textfelder mit Drop-Down-Menü zur Auswahl der Einheit chmod CHMOD-Tabelle pageTree Seitenbaum fileTree Dateibaum tableWizard Tabellenassistent listWizard Listenassistent optionWizard Optionsassistent moduleWizard Modulassistent checkboxWizard Checkbox-Assistent |
| options | Optionen array | Optionen eines Drop-Down- oder Radio-Button-Menüs. |
| options_callback | Callback-Funktion array | Kann verwendet werden, um die Optionen eines Drow-Down- oder Radio-Button-Menüs mit Hilfe einer individuellen Funktion zu laden. |
| foreignKey | tabelle.feld string | Lädt die Optionen eines Drop-Down- oder Radio-Button-Menüs aus einer Tabelle. Verwendet die ID als Schlüssel und das angegebenen Feld als Wert. |
| reference | &$GLOBALS['TL_LANG'] string | Bezeichnungen der Optionen. Enthält normalerweise eine Referenz auf das Spracharray. |
| explanation | &$GLOBALS['TL_LANG'] string | Erklärung des Feldes. Enthält normalerweise eine Referenz auf das Spracharray. |
| input_field_callback | Callback-Funktion array | Wird anstatt der Standardroutine zur Erstellung eines Formularfeldes ausgeführt und übergibt das DataContainer-Objekt sowie die Bezeichnung als Argument. |
| eval | Feldkonfiguration array | Verschiedene Einstellungen (vgl. nächsten Abschnitt). |
| wizard | Callback-Funktion array | Fügt dem Eingabefeld den Rückgabewert einer individuellen Funktion hinzu. |
| load_callback | Callback-Funktion array | Wird beim Laden des Eingabefeldes ausgeführt und übergibt den Feldwert sowie das DataContainer-Objekt als Argument. Erwartet einen Feldwert als Rückgabewert. |
| save_callback | Callback-Funktion array | Wird beim Speichern des Feldes ausgeführt und übergibt den Feldwert sowie das DataContainer-Objekt als Argument. Erwartet einen Feldwert als Rückgabewert. Durch Auslösen einer Exception kann eine Fehlermeldung ausgegeben werden. |
Evaluation ¶
Das Evaluationsarray konfiguriert ein Eingabefeld im Detail. Sie können es z.B. zu einem Pflichtfeld machen, die verschlüsselte Datenspeicherung aktivieren oder sein Aussehen verändern. Benutzereingaben können anhand eines regulären Ausdrucks geprüft werden.
| Schlüssel | Wert | Beschreibung |
|---|---|---|
| helpwizard | true/false boolean | Zeigt das Icon zum Aufruf des Hilfeassistenten neben der Feldbezeichnung an. |
| mandatory | true/false boolean | Macht ein Feld zu einem Pflichtfeld. |
| maxlength | Maximale Länge integer | Legt die maximale Anzahl an Zeichen fest, die in das Feld eingegeben werden dürfen. |
| minlength | Mindestlänge integer | Legt die Anzahl an Zeichen fest, die mindestens in das Feld eingegeben werden müssen. |
| fallback | true/false boolean | Legt fest, dass das Feld nur ein einziges Mal pro Tabelle ausgewählt werden darf. |
| rgxp | Regulärer Ausdruck string | digit erlaubt nur numerische Zeichen alpha erlaubt nur alphabetische Zeichen alnum erlaubt nur alphanumerische Zeichen extnd erlaubt alles außer #&()/<=> prcnt erlaubt Zahlen zwischen 0 und 100 date prüft auf ein gültiges Datum time prüft auf eine gültige Uhrzeit datim prüft auf ein gültiges Datum mit Uhrzeit email prüft auf eine gültige E-Mail-Adresse friendly prüft auf eine gültige E-Mail-Adresse im "friendly name format" url prüft auf eine gültige URL phone prüft auf eine gültige Telefonnummer |
| cols | Spalten integer | Anzahl an Spalten (gilt nur für Textareas). |
| rows | Reihen integer | Anzahl an Reihen (gilt nur für Textareas). |
| wrap | Zeilenumbruch string | off Zeilenumbruch ausschalten soft Weicher Zeilenumbruch hard Harter Zeilenumbruch |
| multiple | true/false boolean | Erlaubt die mehrfache Auswahl bzw. Eingabe und kann für Textfelder, Drop-Down-Menüs, Radio-Buttons und Checkboxen verwendet werden. Für den Checkbox-Assistenten benötigt. |
| size | Größe integer | Größe eines Mehrfachfeldes bzw. Anzahl an Eingabefeldern. |
| style | Formatierung string | CSS-Formatierung (z.B. border:2px) |
| rte | Rich Text Editor-Datei string | tinyMCE Konfigurationsdatei config/tinyMCE.php verwenden tinyFlash Konfigurationsdatei config/tinyFlash.php verwenden Die Verwendung eigener Konfigurationsdateien ist möglich. |
| submitOnChange | true/false boolean | Legt fest, ob das Formular bei der Änderung des Feldwertes automatisch abgeschickt wird. |
| nospace | true/false boolean | Legt fest, ob Leerzeichen eingegeben werden dürfen. |
| allowHtml | true/false boolean | Legt fest, ob HTML-Eingaben erlaubt sind. |
| preserveTags | true/false boolean | Erlaubt alle HTML-Tags (!) in Benutzereingaben. |
| decodeEntities | true/false boolean | Legt fest, ob HTML-Entities dekodiert werden (immer der Fall bei HTML-Eingaben). |
| doNotSaveEmpty | true/false boolean | Verhindert das Speichern des leeren Feldes. |
| alwaysSave | true/false boolean | Legt fest, dass Eingaben immer gespeichert werden, selbst wenn der Feldwert nicht verändert wurde. Hinzugefügt in Version 2.7.RC1. |
| spaceToUnderscore | true/false boolean | Wandelt alle Leerzeichen in Unterstriche um. |
| unique | true/false boolean | Legt fest, dass ein Feldwert nur einmal vorkommen darf. |
| encrypt | true/false boolean | Speichert den Feldwert verschlüsselt. |
| trailingSlash | true/false boolean | Legt fest, ob dem Feldwert ein Schrägstrich hinzugefügt (true) oder ein bestehender Schrägstrich am Ende entfernt (false) wird. |
| files | true/false boolean | Legt fest, ob Dateien und Ordner oder nur Ordner angezeigt werden. Gilt nur für Dateibäume. |
| filesOnly | true/false boolean | Entfernt die Radio Buttons bzw. Checkboxen zur Auswahl von Ordnern. Gilt nur für Dateibäume. |
| extensions | Dateitypen string | Beschränkt den Dateibaum auf bestimmte Dateitypen (kommagetrennte Liste). Gilt nur für Dateibäume. |
| path | Pfad string | Individuelles Wurzelverzeichnis für Dateibäume. |
| fieldType | Feldtyp string | checkbox erlaubt die Auswahl mehrerer Dateien radio erlaubt die Auswahl genau einer Datei Gilt nur für Dateibäume. |
| includeBlankOption | true/false boolean | Legt fest, ob ein Drop-Down-Menü eine leere Option am Anfang enthält. |
| blankOptionLabel | Label string | Bezeichnung der leeren Option (Standard: -). |
| findInSet | true/false boolean | Sortiert ein Optionsarray anhand der Schlüssel anstatt anhand der Werte. Hinzugefügt in Version 2.7.RC1. |
| datepicker | Date-Picker string | Konfiguration des Assistenten zur Datumsauswahl. |
| feEditable | true/false boolean | Legt fest, ob ein Feld im Frontend bearbeitet werden darf. Gilt nur für die Tabelle tl_member. |
| feGroup | Gruppe string | personal Persönliche Daten address Adressdaten contact Kontaktdaten login Login-Daten Gilt nur für die Tabelle tl_member. Das Hinzufügen eigener Gruppen ist möglich. |
| feViewable | true/false boolean | Legt fest, ob das Feld in der Mitgliederliste sichtbar ist. Hinzugefügt in Version 2.6.2. |
| doNotCopy | true/false boolean | Legt fest, dass das Feld beim Duplizieren des Datensatzes nicht mit kopiert wird. |
| hideInput | true/false boolean | Versteckt den Inhalt des Feldes (dieser ist jedoch trotzdem im Quelltext sichtbar!). |
| doNotShow | true/false boolean | Versteckt das Feld in der "Mehrere bearbeiten"- und "Details anzeigen"-Ansicht. |
| isBoolean | true/false boolean | Zeigt an, dass das Feld vom Typ Boolean ist. |
| disabled | true/false boolean | Deaktiviert das Eingabefeld (wird nicht von allen Feldern unterstützt). |
| readonly | true/false boolean | Das Feld kann nur gelesen werden (wird nicht von allen Feldern unterstützt). |

Einen Kommentar hinzufügen
Kommentar von xchs |
Beim Schlüssel "inputType" des Feldarrays fehlen die Werte für "keyValueWizard", "imageSize" und "timePeriod".