Anpassungen der dcaconfig und langconfig ab Contao 4

Seit Contao 4 sollten Anpassungen und Erweiterungen der DCA-Konfiguration nicht mehr in der dcaconfig.php durchgeführt werden. Hier erfährst du das neue Prinzip der Konfigurationsdateien in Contao 4.

Mit der Umstellung von Contao 4 als Symfony-Applikation gibt es viele neue Möglichkeiten das System zu konfigurieren. Das gilt auch für die Konfigurationsdateien, die bisher unter /system/config abgelegt wurden.

Unter Contao 4 kannst du zwar weiterhin deine Anpassungen in dcaconfig.php, langconfig.php und config.php durchführen, doch spätestens mit Contao 5 wird dies nicht mehr möglich sein.

Es ist deswegen sinnvoll ab sofort den neuen Weg der DCA-Konfiguration zu nutzen.

DCA-Konfiguration unter Contao 4 - Ordnerstruktur

DCA-Konfiguration anpassen

Im ersten Schritt erstellst du im Ordner /app/Resources/contao einen neuen Unterordner mit dem Namen dca.

Nun benötigst du für jede Tabelle eine eigene Datei. In diese kommen die Einstellungen aus der dcaconfig.php.

Beispiel - HTML in Überschriften erlauben und Feld Geburtsdatum ausblenden

Unter Contao 3 wurden die folgenden Zeilen in die dcaconfig.php eingefügt.

dcaconfig.php

<?php

/* HTML in Überschriften erlauben */
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
  
/* HTML in News Überschriften bzw. Titel erlauben */
$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['preserveTags'] = true;

/*Felder im Backend ausblenden*/
unset($GLOBALS['TL_DCA']['tl_member']['fields']['dateOfBirth']);

Unter Contao 4 werden daraus jetzt die 3 folgenden Dateien:

  • tl_content.php
  • tl_news.php
  • tl_member.php

Diese werden alle im Ordner /app/Resources/contao/dca angelegt.

app/Resources/contao/dca/tl_content.php

<?php

/* HTML in Überschriften */
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;

app/Resources/contao/dca/tl_news.php

<?php

/* HTML in News Überschriften bzw. Titel erlauben */
$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['preserveTags'] = true;

app/Resources/contao/dca/tl_member.php

<?php

/*Felder im Backend ausblenden*/
unset($GLOBALS['TL_DCA']['tl_member']['fields']['dateOfBirth']);

Cache leeren

Damit die Einstellungen aktiv werden muss zum Schluss noch einmal der Anwendungs-Cache geleert werden. (Contao Manager > Systemwartung > Prod.-Cache erneuern oder alternativ über die Kommandozeile)

Bezeichnungen und Übersetzungen anpassen

Zuerst muss wieder die Ordnerstruktur erweitert werden und unter /app/Resources/contao ein neuer Unterordner mit dem Namen languages erstellt werden.

Zusätzlich muss unter /app/Resources/contao/languages für jede benötigte Sprache ein neuer Ordner mit entsprechendem Sprachcode erstellt werden. Für die deutsche Sprache ist das entsprechend der Ordner de und für Englisch en. Hier werden nun die einzelnen Dateien für die Sprachkonfiguration abgelegt.

Bei den Sprachdateien können prinzipiell php-oder xlf-Datei verwendet werden.

Beispiel - Text für den More-Link überschreiben

Unter Contao 3 wurden die Änderungen updatesicher in der Datei system/config/langconfig.php gespeichert.

langconfig.php

<?php

//Weiterlesen News
$GLOBALS['TL_LANG']['MSC']['more'] = 'Mein neuer Weiterlesen-Text …';

Wenn du unter Contao 4 die PHP-Variante verwenden willst, kannst du den Eintrag einfach 1:1 übernehmen und in die default.php schreiben.

app/Resources/contao/languages/de/default.php

<?php

//Weiterlesen News
$GLOBALS['TL_LANG']['MSC']['more'] = 'Mein neuer Weiterlesen-Text …';

Wie findest du die richtige Sprachdatei für Contao 4?

Ich möchte dir jetzt noch einen Weg zeigen, wie du die korrekte Sprachdatei findest.

Zunächst durchsuchst du dazu die originalen Sprachdateien nach dem zu ersetzenden Begriff. Alle Sprachdateien, die das Contao Basissystem betreffen, findest du unter folgendem Verzeichnis:
vendor/contao/core-bundle/src/Resources/contao/languages

Diese sind inzwischen im xlf-Format. In unserem Beispiel suchen wir nach "Weiterlesen …" und finden den Eintrag in der Datei default.xlf in der Zeile 2274.
Siehe hier unter Github.

Nun legen wir eine neue default.xlf an und übertragen die nötigen Zeilen. Wichtig ist, dass du den richtigen Aufbau der Datei einhältst.

app/Resources/contao/languages/de/default.xlf

<?xml version="1.0" ?><xliff version="1.1">
  <file datatype="php" original="src/Resources/contao/languages/en/default.php" source-language="en" target-language="de">
    <body>
      <trans-unit id="MSC.more">
        <source>Read more …</source>
        <target>Mein neuer Weiterlesen-Text …</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Anwendungs-Cache leeren

Damit eine neue Konfiguration wirksam werden kann, musst du nach Veränderungen an den Konfigurationsdateien den Production-Cache über den Contao Manager (alternativ über die Kommandozeile) löschen.

Contao Manager - Production Cache löschen

Wichtiger Hinweis für Contao 4.8 und neuer

Unter Contao 4.8 wurden die Pfade noch einmal angepasst und die Verwendung des /app-Ordners funktioniert zwar noch, wird allerdings nicht mehr empfohlen. Die angepassten Contao-Dateien sollten nun in den Ordner /contao und nicht mehr in den Ordner /app/Resources/contao abgelegt werden.

Die neuen Pfade für unser Beispiel lauten wie folgt:

  • /contao/dca/tl_content.php

  • /contao/dca/tl_news.php

  • /contao/dca/tl_member.php

  • /contao/languages/de/default.xlf

Tutorial getestet mit Contao:
  • 4.4
  • 4.5
  • 4.6
  • 4.7
  • 4.8
Hat dir dieser Artikel gefallen?

Willst du in Zukunft keinen Artikel verpassen?
Dann trage hier deine E-Mailadresse ein und klicke auf "Abonnieren". Du erhältst regelmäßig aktuelle Infos über Contao und die Contao-Academy.

Wir geben deine Daten niemals an Dritte weiter! Du kannst deine E-Mailadresse jederzeit mit nur 1 Klick wieder aus unserem System löschen. Datenschutzhinweis

Über den Autor
Christian Feneberg (Gründer Fenepedia)

Christian Feneberg ist der Gründer der Contao-Academy und nutzt seit 2010 Contao. Neben Contao begeistert er sich für Online-Marketing, Unternehmertum und Persönlichkeitsentwicklung.

Folge Christian jetzt auf Twitter, Facebook, Instagram und Xing.

1 Kommentare

zonky |

unter http://www.e-spin.de/dcaconfig-editor.html hatte ich mal verschiedene Änderungsoptionen zusammen gestellt...

... eigentlich schade, dass man das nicht mehr in einer Datei abfrühstücken kann :(

Einen Kommentar schreiben

Was ist die Summe aus 6 und 6?