[1230 Aufrufe]

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.