Ab Contao 4.9 liegen die Dateien unter /contao in einem jeweils eigenen Ordner für die jeweiligen Konfigurationsdateien. Nur die localconfig.php bleibt (vorerst) an Ort und Stelle. Details dazu im Tutorial »Anpassungen der dcaconfig und langconfig ab Contao 4.«
ab Contao 4.9:
/config/config.yml
/parameters.yml
/contao/
config/
dca/tl_content.php
/tl_member.php
/tl_news.php
languages/de/default.php (oder default.xlf)
templates/
/system/config/localconfig.php
bis Contao 4.8:
/app/config/parameters.yml
/config.yml
/app/Resources/contao/config/
/dca/tl_content.php
/tl_member.php
/tl_news.php
/languages/de/default.php
/templates/
/system/config/localconfig.php
Contao 3.x:
/system/config/localconfig.php
/langconfig.php
/dcaconfig.php
...
Nach jeder Änderung einer config-Datei muss der Prod-Cache geleert werden!
Datei /contao/dca/tl_content.php:
<?php
// HTML in Überschriften erlauben (allowHTML bezieht sich nur auf die erlaubten HTML-Tags - siehe Einstellungen)
$GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHTML'] = true;
Datei /contao/dca/tl_news.php:
<?php
// HTML in News-Überschriften erlauben (preserveTags erlaubt alle HTML-Tags)
$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['perserveTags'] = true;
Datei /contao/dca/tl_page.php:
<?php
// Seiten-ID ausgeben
$GLOBALS['TL_DCA']['tl_page']['list']['label']['fields'][] = 'id';
$GLOBALS['TL_DCA']['tl_page']['list']['label']['format'] = '%s <span style="color:#999999;padding-left:3px;font-weight:normal;">[ID: %s]</span>';
Datei /contao/dca/tl_article.php:
<?php
// Artikel-ID ausgeben
$GLOBALS['TL_DCA']['tl_article']['list']['label']['fields'][] = 'id';
$GLOBALS['TL_DCA']['tl_article']['list']['label']['format'] = '%s <span style="color:#999999;padding-left:3px;font-weight:normal;">[%s, ID: %s]</span>';
Datei /contao/dca/tl_module.php:
<?php
// Modul-ID ausgeben
$GLOBALS['TL_DCA']['tl_module']['list']['sorting']['child_record_callback'] = function ($row) {
return '<div class="tl_content_left">' . $row['name'] . ' <span style="color:#999;padding-left:3px">[' . $GLOBALS['TL_LANG']['FMD'][$row['type']][0] . ' | ID:' . $row['id'] . "]</span></div>\n";
};
Datei /contao/dca/tl_member.php:
<?php
// Geburtsdatum im Backend ausblenden
unset($GLOBALS['TL_DCA']['tl_member']['fields']['dateOfBirth']);
Weitere Beispiele sind bei der (alten) Erweiterung von Zonky aufgelistet: dcaconfig-editor.
Datei /contao/languages/de/default.php:
<?php
// "Kopie" beim Kopieren eines Artikels weglassen
$GLOBALS['TL_LANG']['MSC']['copyOf'] = '%s';
Die originalen Sprachdateien nach dem zu ersetzenden Begriff durchsuchen:
vendor/contao/core-bundle/scr/Resources/contao/languages/de
Weitere Infos dazu im Blogbeitrag und in den Kommentaren bei der Contao-Academy
Ab Contao 4.10 werden die Mailer-Transports in der config.yml eingetragen siehe Doku.
smtp://<BENUTZERNAME>:<PASSWORT>@<HOSTNAME>:<PORT>
Anstatt smtp:// kann auch smtps:// verwendet werden, um automatisch SSL Verschlüsselung über Port 465 zu verwenden.
In Contao wird eine E-Mail-Adresse für Systemnachrichten in den Seiteneinstellungen hinterlegt (in der Regel ist das die Adresse des Kunden). Der eingebaute Swiftmailer nimmt die als Absenderadresse her. Problem mit MS Exchange: Absenderadresse und “vorgeschobene” Absenderadresse (z.B. beim Kontaktformular oder beim Newsletter) muss gleich mit dieser Absenderadresse sein, sonst stuft der Exchange-Server das als Spam ein bzw. nimmt die Nachricht erst gar nicht an.
Ab Contao 4.10 wird der Swiftmailer durch den Symphony-Mailer ersetzt. Der Mailer-Transport (=SMTP-Konfiguration http://:@: bzw. https://BENUTERNAME>:@) wird in der App-Konfiguration definiert und im Backend für den Mailversand ausgewählt. Dadurch ist es möglich, Newsletter über ein anderes SMTP-Postfach und eine andere E-Mail-Adresse zu versenden als Formulardaten und Systemnachrichten.