Contao Open Source CMS > Verstehen > Entwicklerhandbuch > Data Container Arrays > Interne Struktur eines Data Container Arrays

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üsselWertBeschreibung
label&$GLOBALS['TL_LANG']
string
Die Bezeichnung wird in der Seitenstruktur und in der Dateiverwaltung verwendet. Enthält normalerweise eine Referenz auf das Spracharray.
ptableElterntabelle
string
Name der bezogenen Elterntabelle (table.pid = ptable.id).
ctableKindtabellen
array
Name der bezogenen Kindtabellen (table.id = ctable.pid).
dataContainerData Container
string
Table (Tabellen), File (lokale Konfigurationsdatei) oder Folder (Dateiverwaltung).
validFileTypesDateitypen
string
Kommagetrennte Liste gültiger Dateiendungen (nur für Dateibäume).
uploadScriptDateiname
string
Dateiname des FancyUpload-Skripts im Ordner system/config (ohne Dateiendung).
closedtrue/false
boolean
Verbietet das Anlegen neuer Datensätze in der Tabelle.
notEditabletrue/false
boolean
Verbietet das Bearbeiten der Tabelle.
switchToEdittrue/false
boolean
Aktiviert die "Speichern und Bearbeiten"-Schaltfläche beim Anlegen eines neuen Datensatzes (nur Sortierungsmodus 4).
enableVersioningtrue/false
boolean
Aktiviert das Anlegen einer neuen Version beim Speichern eines Datensatzes.
doNotCopyRecordstrue/false
boolean
Verhindert die Duplizierung der Kinddatensätze, wenn ein Datensatz der Elterntabelle dupliziert wird.
doNotDeleteRecordstrue/false
boolean
Verhindert die Löschung der Kinddatensätze, wenn ein Datensatz der Elterntabelle gelöscht wird.
onload_callbackCallback-Funktion
array
Ruft eine Callback-Funktion beim Initialisieren des Data Containers auf und übergibt das DataContainer-Objekt als Argument.
onsubmit_callbackCallback-Funktion
array
Ruft eine Callback-Funktion nach der Aktualisierung eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument.
ondelete_callbackCallback-Funktion
array
Ruft eine Callback-Funktion beim Löschen eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument.
oncut_callbackCallback-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_callbackCallback-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üsselWertBeschreibung
modeSortierungsmodus
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)
flagSortierflag
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
panelLayoutPaneellayout
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.
fieldsStandard-Sortierfelder
array
Eines oder mehrere Felder, anhand derer die Tabelle sortiert wird.
headerFieldsHeader-Felder
array
Eines oder mehrere Felder, die im Header des Parent View angezeigt werden (nur Sortierungsmodus 4).
iconBaumsymbole
string
Pfad zu einem Symbol, das oberhalb des Baumes angezeigt wird (nur Sortierungsmodus 5 und 6).
rootWurzeldatensätze
array
IDs der Wurzeldatensätze (Pagemounts). Wird normalerweise automatisch gesetzt.
filterAbfragefilter
array
Ermöglicht das Hinzufügen eigener Filter als Arrays, z.B. array('status=?', 'active'). Hinzugefügt in Version 2.9.0.
disableGroupingtrue/false
boolean
Ermöglicht das Deaktivieren der Gruppenüberschriften im List View und Parent View.
paste_button_callbackCallback-Funktion
array
Wird anstatt der Standardroutine zur Erstellung der Einfüge-Schaltflächen ausgeführt.
child_record_callbackCallback-Funktion
array
Wird zur Darstellung der Kinddatensätze ausgeführt (nur Sortierungsmodus 4).
child_record_classCSS-Klasse
string
Ermöglicht das Hinzufügen einer CSS-Klasse zu den Parent View-Elementen.

Bezeichnungen

SchlüsselWertBeschreibung
fieldsFelder
array
Eines oder mehrere Felder, die in der Liste angezeigt werden.
formatFormat-String
string
HTML-Zeichenkette zur Formatierung der angezeigten Felder (z.B. <strong>%s</strong>).
maxCharactersAnzahl an Zeichen
integer
Maximale Länge der Bezeichnung.
group_callbackCallback-Funktion
array
Wird anstatt der Standardroutine zur Erstellung der Gruppennamen ausgeführt.
label_callbackCallback-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üsselWertBeschreibung
label&$GLOBALS['TL_LANG']
string
Bezeichnung der Schaltfläche. Enthält normalerweise eine Referenz auf das Spracharray.
hrefURL-Fragment
string
URL-Fragment, das beim Anklicken der Schaltfläche an die URL angehängt wird (z.B. act=editAll).
classCSS-Klasse
string
CSS-Klasse der Schaltfläche.
attributesZusätzliche Attribute
string
Zusätzliche Attribute wie z.B. Eventhandler oder Style-Definitionen.
button_callbackCallback-Funktion
array
Wird anstatt der Standardroutine zur Erstellung des Navigationssymbols ausgeführt.

Reguläre Aktionen

SchlüsselWertBeschreibung
label&$GLOBALS['TL_LANG']
string
Bezeichnung der Schaltfläche. Enthält normalerweise eine Referenz auf das Spracharray.
hrefURL-Fragment
string
URL-Fragment, das beim Anklicken der Schaltfläche an die URL angehängt wird (z.B. act=edit).
iconNavigationssymbol
string
Pfad und Dateiname des Icons.
attributesZusätzliche Attribute
string
Zusätzliche Attribute wie z.B. Eventhandler oder Style-Definitionen.
button_callbackCallback-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üsselWertBeschreibung
label&$GLOBALS['TL_LANG']
string
Bezeichnung des Feldes. Enthält normalerweise eine Referenz auf das Spracharray.
defaultStandardwert
mixed
Der Standardwert wird bei der Erstellung eines neuen Datensatzes gesetzt.
excludetrue/false
boolean
Blendet das Feld für reguläre Benutzer aus. Kann in den Gruppeneinstellungen festgelegt werden (erlaubte Felder).
searchtrue/false
boolean
Fügt das Feld dem Suchmenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout").
sortingtrue/false
boolean
Fügt das Feld dem Sortiermenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout").
filtertrue/false
boolean
Fügt das Feld dem Filtermenü hinzu (vgl. "Datensätze sortieren" -> "Paneellayout").
flagSortierflag
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
lengthSortierlä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.
inputTypeFeldtyp
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
optionsOptionen
array
Optionen eines Drop-Down- oder Radio-Button-Menüs.
options_callbackCallback-Funktion
array
Kann verwendet werden, um die Optionen eines Drow-Down- oder Radio-Button-Menüs mit Hilfe einer individuellen Funktion zu laden.
foreignKeytabelle.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_callbackCallback-Funktion
array
Wird anstatt der Standardroutine zur Erstellung eines Formularfeldes ausgeführt und übergibt das DataContainer-Objekt sowie die Bezeichnung als Argument.
evalFeldkonfiguration
array
Verschiedene Einstellungen (vgl. nächsten Abschnitt).
wizardCallback-Funktion
array
Fügt dem Eingabefeld den Rückgabewert einer individuellen Funktion hinzu.
load_callbackCallback-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_callbackCallback-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üsselWertBeschreibung
helpwizardtrue/false
boolean
Zeigt das Icon zum Aufruf des Hilfeassistenten neben der Feldbezeichnung an.
mandatorytrue/false
boolean
Macht ein Feld zu einem Pflichtfeld.
maxlengthMaximale Länge
integer
Legt die maximale Anzahl an Zeichen fest, die in das Feld eingegeben werden dürfen.
minlengthMindestlänge
integer
Legt die Anzahl an Zeichen fest, die mindestens in das Feld eingegeben werden müssen.
fallbacktrue/false
boolean
Legt fest, dass das Feld nur ein einziges Mal pro Tabelle ausgewählt werden darf.
rgxpRegulä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
colsSpalten
integer
Anzahl an Spalten (gilt nur für Textareas).
rowsReihen
integer
Anzahl an Reihen (gilt nur für Textareas).
wrapZeilenumbruch
string
off Zeilenumbruch ausschalten
soft Weicher Zeilenumbruch
hard Harter Zeilenumbruch
multipletrue/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.
sizeGröße
integer
Größe eines Mehrfachfeldes bzw. Anzahl an Eingabefeldern.
styleFormatierung
string
CSS-Formatierung (z.B. border:2px)
rteRich Text Editor-Datei
string
tinyMCE Konfigurationsdatei config/tinyMCE.php verwenden
tinyFlash Konfigurationsdatei config/tinyFlash.php verwenden

Die Verwendung eigener Konfigurationsdateien ist möglich.
submitOnChangetrue/false
boolean
Legt fest, ob das Formular bei der Änderung des Feldwertes automatisch abgeschickt wird.
nospacetrue/false
boolean
Legt fest, ob Leerzeichen eingegeben werden dürfen.
allowHtmltrue/false
boolean
Legt fest, ob HTML-Eingaben erlaubt sind.
preserveTagstrue/false
boolean
Erlaubt alle HTML-Tags (!) in Benutzereingaben.
decodeEntitiestrue/false
boolean
Legt fest, ob HTML-Entities dekodiert werden (immer der Fall bei HTML-Eingaben).
doNotSaveEmptytrue/false
boolean
Verhindert das Speichern des leeren Feldes.
alwaysSavetrue/false
boolean
Legt fest, dass Eingaben immer gespeichert werden, selbst wenn der Feldwert nicht verändert wurde. Hinzugefügt in Version 2.7.RC1.
spaceToUnderscoretrue/false
boolean
Wandelt alle Leerzeichen in Unterstriche um.
uniquetrue/false
boolean
Legt fest, dass ein Feldwert nur einmal vorkommen darf.
encrypttrue/false
boolean
Speichert den Feldwert verschlüsselt.
trailingSlashtrue/false
boolean
Legt fest, ob dem Feldwert ein Schrägstrich hinzugefügt (true) oder ein bestehender Schrägstrich am Ende entfernt (false) wird.
filestrue/false
boolean
Legt fest, ob Dateien und Ordner oder nur Ordner angezeigt werden. Gilt nur für Dateibäume.
filesOnlytrue/false
boolean
Entfernt die Radio Buttons bzw. Checkboxen zur Auswahl von Ordnern. Gilt nur für Dateibäume.
extensionsDateitypen
string
Beschränkt den Dateibaum auf bestimmte Dateitypen (kommagetrennte Liste). Gilt nur für Dateibäume.
pathPfad
string
Individuelles Wurzelverzeichnis für Dateibäume.
fieldTypeFeldtyp
string
checkbox erlaubt die Auswahl mehrerer Dateien
radio erlaubt die Auswahl genau einer Datei

Gilt nur für Dateibäume.
includeBlankOptiontrue/false
boolean
Legt fest, ob ein Drop-Down-Menü eine leere Option am Anfang enthält.
blankOptionLabelLabel
string
Bezeichnung der leeren Option (Standard: -).
findInSettrue/false
boolean
Sortiert ein Optionsarray anhand der Schlüssel anstatt anhand der Werte. Hinzugefügt in Version 2.7.RC1.
datepickerDate-Picker
string
Konfiguration des Assistenten zur Datumsauswahl.
feEditabletrue/false
boolean
Legt fest, ob ein Feld im Frontend bearbeitet werden darf. Gilt nur für die Tabelle tl_member.
feGroupGruppe
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.
feViewabletrue/false
boolean
Legt fest, ob das Feld in der Mitgliederliste sichtbar ist. Hinzugefügt in Version 2.6.2.
doNotCopytrue/false
boolean
Legt fest, dass das Feld beim Duplizieren des Datensatzes nicht mit kopiert wird.
hideInputtrue/false
boolean
Versteckt den Inhalt des Feldes (dieser ist jedoch trotzdem im Quelltext sichtbar!).
doNotShowtrue/false
boolean
Versteckt das Feld in der "Mehrere bearbeiten"- und "Details anzeigen"-Ansicht.
isBooleantrue/false
boolean
Zeigt an, dass das Feld vom Typ Boolean ist.
disabledtrue/false
boolean
Deaktiviert das Eingabefeld (wird nicht von allen Feldern unterstützt).
readonlytrue/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".