DCA-Anpassungen
DCA Adjustments :: Contao Manual
HTML in Überschriften erlauben
Section titled “HTML in Überschriften erlauben”<?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;https://contao-academy.de/blog/html-tags-in-ueberschriften-zulassen
{% use "@Contao/component/_headline.html.twig" %}
{# Der Block headline_inner wird um die nötigen Filter ergänzt. #}{% block headline_inner %} {{ headline.text|insert_tag_raw|raw }}{% endblock %}HTML in Nachrichten-Überschriften erlauben
Section titled “HTML in Nachrichten-Überschriften erlauben”<?php// HTML in News Überschriften bzw. Titel erlauben// preserveTags erlaubt alle HTML-Tags$GLOBALS['TL_DCA']['tl_news']['fields']['headline']['eval']['preserveTags'] =true;Seiten-, Artikel- und Modul-ID ausgeben
Section titled “Seiten-, Artikel- und Modul-ID ausgeben”Seiten-ID
Section titled “Seiten-ID”<?php$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>';Artikel-ID
Section titled “Artikel-ID”<?php$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>';Modul-ID
Section titled “Modul-ID”<?php$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";};Geburtsdatum im Backend ausblenden
Section titled “Geburtsdatum im Backend ausblenden”<?phpunset($GLOBALS['TL_DCA']['tl_member']['fields']['dateOfBirth']);};Weitere Beispiele, z.T. aber wahrscheinlich alt: Contao dcaconfig-editor
Neue Felder anlegen (z.B. für Nachrichtenteaser)
Section titled “Neue Felder anlegen (z.B. für Nachrichtenteaser)”Adjusting the DCA
(Teaser umbenennen siehe Seite Sprachdateien ändern)
Prod-Cache leeren und DB aktualisieren
Zuerst schauen wir die Originaldatei an:
/vendor/contao/news-bundle/contao/dca/tl_news.php
Der String, der für die Anpassungen mit dem Palette Manipulator zuständig ist, steht unter:
$GLOBALS['TL_DCA']['tl_news'] = [... // Palettes 'palettes' ⇒ [ ... // Zeilenumbrüche zum besseren Überblick eingefügt: 'default' ⇒ '{title_legend},headline,featured,alias,author; {date_legend},date,time; {source_legend:hide},source; {meta_legend},pageTitle,robots,description.serpPreview; {details_legend},location,address,teaser; {image_legend},addImage; {recurring_legend},recurring; {enclosure_legend:hide},addEnclosure; {expert_legend:hide},cssClass,noComments; {publish_legend},published,start,stop, ... ],...];Dann legen wir für die Anpassungen eine neue Datei an:
<?php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
// https://docs.contao.org/dev/reference/widgets/checkbox/#examples// https://docs.contao.org/dev/reference/dca/palettes/#arranging-fields// w25, w33, w50, w66, w75, cbx m12, …
$GLOBALS['TL_DCA']['tl_news']['fields']['neuesfeld'] = [ 'label' => ['Mein neues Feld', 'Beschreibungstext für das neue Feld'], 'inputType' => 'text', 'eval' => ['tl_class' => 'w25', 'maxlength' => 255], 'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],];
PaletteManipulator::create() →addField('neuesfeld', 'subheadline') →addField('eventuellnocheinneuesfeld', 'neuesfeld')// ... ->applyToPalette('default', 'tl_news') ->applyToPalette('internal', 'tl_news') ->applyToPalette('article', 'tl_news') ->applyToPalette('external', 'tl_news');POSITION_AFTER after the defined parent field -> gaaaaanz unten
POSITION_BEFORE ist auch gaaaaanz unten??
Felder für tl_news nur für ein bestimmtes Nachrichtenarchiv anlegen
Section titled “Felder für tl_news nur für ein bestimmtes Nachrichtenarchiv anlegen”- Neue Felder anlegen
- Darunter eine Callback-Funktion mit if-Statement
- PaletteManipulater nur dann ausführen, wenn das if-Statement erfüllt ist
$GLOBALS['TL_DCA']['tl_news']['fields']['neuesfeld'] = [ ...];
$GLOBALS['TL_DCA']['tl_news']['config']['onload_callback'][] = function () { $id = \Contao\Input::get('id'); $news = \Contao\NewsModel::findById($id);
if ($news !== null && $news->pid == 9) {
PaletteManipulator::create() ->addField('neuesfeld', 'subheadline') ->applyToPalette('default', 'tl_news') ->applyToPalette('internal', 'tl_news') ->applyToPalette('article', 'tl_news') ->applyToPalette('external', 'tl_news') ;
}};m-vo/contao-group-widget
Section titled “m-vo/contao-group-widget”Input-Type Gruppe GitHub