3.1 Überblick über das Data Container Array (DCA)
In diesem Text sehen wir uns den Aufbau des DCA, sowie die einzelnen Bereiche an. In den weiteren Beiträgen des Kapitels werden wir die Bereiche im Detail und die jeweiligen Einstellungen durchgehen. Ziel ist ein umfassender Überblick, über die Möglichkeiten des DCA.
Auch wenn wir einen großen Teil ausführlich behandeln, werden wir hier nicht auf jeden möglichen Fall eingehen können. Für weitere Informationen sei deshalb die Dokumentation empfohlen.
Aber, was ist das DCA eigentlich? Das DCA ist die zentrale Konfigurationseinheit in Contao. Wir legen hier fest, welche Tabellen es gibt, wie sie aufgebaut sind und wie die Dateneingabe im Backend aussehn soll.
Ich werde zunächst den kompltten Aufbau zeigen und dann alle Bereiche einzeln durchgehen. In den nächsten Beiträgen werden wir uns dann je einen Abschnitt vornehmen. Die Callbacks werde ich nennen aber erst einmal nicht weiter behandeln, da ich ihnen im nächten Kapitel je einen Text widmen möchte.
Nach allen Änderungen am DCA muss der Cache geleert werden, wenn nicht der Dev-Mode verwendet wird!
Aufbau
In Contao gibt es für jede Tabelle ein DCA, welches unter /src/Ctocb/Example/Ressources/Contao/dca
gespeichert wird.
Die Datei muss immer den Namen der Tabelle tragen. In den bisherigen Texten haben z. B. meist die Tabelle tl_testtable
verwendet. Das zugehörige DCA haben wir dem entsprechend unter /src/Ctocb/Example/Resources/contao/dca/tl_testtable.php
gespeichert.
(Bitte den Vendor-Namespace (oder entsprechenden Ordner) wieder durch Euren eignen
ersetzen und nicht Ctocb
verwenden!)
<?php declare(strict_types=1);
$GLOBALS['TL_DCA']['tl_testtable'] = [
// Config
'config' => [
// ...
],
// List
'list' => [
// ...
],
// Palettes
'palettes' => [
// ...
],
// Subpalettes
'subpalettes' => [
// ...
],
// Fields
'fields' => [
// ...
]
];
Wie man sieht haben wir die Abschnitte config
, list
, palettes
, subpalettes
und fields
. Es gibt noch weitere
Abschnitte, aber dies soll für den Einstieg erst einmal reichen. Die meisten Anforderungen lassen sich mit Einträgen
in diesen Gruppen realisieren.
Config
Im Abschnitt config
legen wie erst einmal fest, wie unsere Daten gespeichert werden sollen. Weiterhin können wir hier
Details zum SQL, sowie weitere Einstellungen für Contao hinterlegen. Auch die Tabellenbeziehungen werden
hier eingetragen.
List
Dieser Abschnitt beschäftigt sich mit der Anzeige der Daten im Backend, z. B. ob die Daten als Liste, Tabelle, oder Baum angezeigt werden sollen. Außerdem wird die Sortierung und ggf. die Gruppierung hier eingestellt. In manchen Ansichten gibt es im oberen Bereich ein Panel, welches ebenfalls hier definiert wird.
Paletten
In den Paletten werden die Felder für die Anzeige zusammengestellt. Sie können in Gruppen eingeteilt werden, welche dann auf- und zugekklappt werden können. Manche Felder blenden je nach Wert, weitere Felder ein (z. B. Auswahl des Typs eines Inhaltselements). Diese Felder werden auch in diesem Abschnitt eingetragen.
Subpaletten
Wenn Felder weitere Felder anziegen, werden diese zusätzlichen Felder nicht bei der Paletten eingetragen, sondern hier in sogenannte Subpaletten aufgeteilt. Jeder Wert eines Felds der Palette kann eine eigene Subpalette haben. Dies gilt jedenfalls für Auswahlfelder. Checkboxen haben nur eine Subpaletten, für den Fall, dass der Hacken gesetzt ist.
Felder
Hier werden die einzelnen Felder mit all ihren Einstellungen definiert. Dies gilt einerseits für das Erstellen der Datenbank, zum anderen für die Ausgabe im Backend. Dieser Abschnitt kann sehr lang werden und ist meist der größte Teil des DCA.
Ausbilck
In den weiteren Texten werden wir auf die Möglichkeiten der einzelen Bereiche eingechen und uns etwas in die Details vertiefen.