Das Contao »Data Container Array« (DCA) bietet zahlreiche, praktische Konfigurationsmöglichkeiten. Hier findest du eine Auswahl hilfreicher Beispiele.
Ab Contao 4.9 werden die jeweiligen Anpassungen im Verzeichnis »contao/dca« erwartet. Falls die Verzeichnisse noch nicht existieren, musst du diese zunächst erstellen. Für jede Contao-Tabelle benötigst du eine eigene Datei, beispielsweise »contao/dca/tl_content.php«. Anschließend mußt du den Anwendungs-Cache über den Contao Manager oder über die Konsole neu aufbauen. Dieser Schritt ist nach jeder Änderung erforderlich.
Du kennst weitere, praktische Beispiele? Dann ergänze diese Sammlung mit deinen Informationen. Ausführliche Angaben wie du zur Dokumentation beitragen kannst findest du hier.
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
// contao/dca/tl_news.php
$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['preserveTags'] = true;
// contao/dca/tl_page.php
// HTML in Seitennamen
$GLOBALS['TL_DCA']['tl_page']['fields']['title']['eval']['allowHtml'] = true;
// HTML in Seitentitel
$GLOBALS['TL_DCA']['tl_page']['fields']['pageTitle']['eval']['allowHtml'] = true;
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['caption']['eval']['allowHtml'] = true;
Um das Feld auszublenden, wird die Palette geändert und das Feld aus den Einstellungen der Konfiguration des Moduls Personendaten entfernt:
// contao/dca/tl_member.php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
PaletteManipulator::create()
->removeField('company')
->applyToPalette('default', 'tl_member')
;
unset($GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['feEditable']);
unset($GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['feGroup']);
Du kannst das Feld aber auch vollständig entfernen:
// contao/dca/tl_member.php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
PaletteManipulator::create()
->removeField('company')
->applyToPalette('default', 'tl_member')
;
unset($GLOBALS['TL_DCA']['tl_member']['fields']['company']);
Beachte: dadurch wird beim nächsten
Aktualisieren der Datenbank die Spalte company
zum Löschen vorgeschlagen!
// contao/dca/tl_page.php
$GLOBALS['TL_DCA']['tl_page']['list']['label']['fields'][] = 'id';
$GLOBALS['TL_DCA']['tl_page']['list']['label']['format'] = '%s <span style="font-weight:normal; padding-left: 3px;">(IDp: %s)</span>';
// contao/dca/tl_article.php
$GLOBALS['TL_DCA']['tl_article']['list']['label']['fields'][] = 'id';
$GLOBALS['TL_DCA']['tl_article']['list']['label']['format'] = '%s <span style="font-weight:normal; padding-left: 3px;">(%s, IDa: %s)</span>';
// contao/dca/tl_member.php
$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['mandatory'] = true;
// contao/dca/tl_files.php
unset($GLOBALS['TL_DCA']['tl_files']['list']['sorting']['panelLayout']);
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['options']= ['h2','h3']; # Beispiel auf h2 und h3 einschränken
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['playerSize']['default'] = [960,540];
// contao/dca/tl_content.php
// Die Voreinstellungen werden für alle Inhalte mit Bildelementen übernommen. Bild, Galerie
// Vorschaubilder pro Reihe
$GLOBALS['TL_DCA']['tl_content']['fields']['perRow']['default'] = '4';
// Großansicht/Neues Fenster anhaken
$GLOBALS['TL_DCA']['tl_content']['fields']['fullsize']['default'] = '1';
// Vorauswahl Bildabstände in px
$GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']['default'] = serialize(['unit' => 'px']);
// Sortieren nach individueller Reihenfolge
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'custom';
// Sortieren nach Dateiname (aufsteigend)
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'name_asc';
// Sortieren nach Dateiname (absteigend)
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'name_desc';
// Sortieren nach Datum (aufsteigend)
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'date_asc';
// Sortieren nach Datum (absteigend)
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'date_desc';
// Sortieren nach zufälliger Reihenfolge
$GLOBALS['TL_DCA']['tl_content']['fields']['sortBy']['default'] = 'random';
// Bildgrösse zum Beispiel Exaktes Format Mitte | Mitte
$GLOBALS['TL_DCA']['tl_content']['fields']['size']['default'] = [500,500,'center_center'];
// weitere Variablen für Exaktes Format:
// 'crop', 'left_top', 'left_center', 'left_bottom', 'center_top', 'center_bottom', 'right_top', 'right_center', 'right_bottom'
$GLOBALS['TL_DCA']['tl_content']['fields']['size']['default'] = [150]; # Bildbreite von 150px
$GLOBALS['TL_DCA']['tl_content']['fields']['size']['default'] = [150,150]; # Bildbreite und Bildhöhe von 150px
// Eigene Bildgrössen
$GLOBALS['TL_DCA']['tl_content']['fields']['size']['default'] = [0, 0, 2]; # die '2' ist die ID der Bildgrösse
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['list']['sorting']['headerFields'][] = 'inColumn';
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['search'] = true;