DCA-Anpassungen
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.
Info
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.
HTML in Überschriften erlauben
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
HTML in News Überschriften bzw. Titel erlauben
// contao/dca/tl_news.php
$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['preserveTags'] = true;
HTML im Seitennamen und Seitentitel erlauben
// 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;
HTML in Bildunterschriften erlauben
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['caption']['eval']['allowHtml'] = true;
Ein Feld im Backend ausblenden
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!
IDs im Seiten-Baum anzeigen
// 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>';
IDs im Artikel-Baum anzeigen
// 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>';
Firma zu einem Pflichtfeld in der Mitgliedertabelle machen
// contao/dca/tl_member.php
$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['mandatory'] = true;
Suche in der Dateiverwaltung ausblenden
// contao/dca/tl_files.php
unset($GLOBALS['TL_DCA']['tl_files']['list']['sorting']['panelLayout']);
H-Tag in Überschriften einschränken
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['options']= ['h2','h3']; # Beispiel auf h2 und h3 einschränken
Vorbelegungen Playergrösse
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['playerSize']['default'] = [960,540];
Vorbelegungen Bildeinstellung
// 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
Anzeige der Artikel Sektion in der Listenansicht der Inhaltselemente
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['list']['sorting']['headerFields'][] = 'inColumn';
Die Suche nach CSS-ID/Klasse in Inhaltselementen ermöglichen
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['fields']['cssID']['search'] = true;