Wenn du dir in der Datei system/modules/news/dca/tl_news.php anschaust, was da an Paletten und Feldern definiert ist, dann wirst du nach dem Kommentar "// Pallettes folgendes finden (in Contao 3.5.4):
PHP-Code:
// Palettes
'palettes' => array
(
'__selector__' => array('addImage', 'addEnclosure', 'source', 'published'),
'default' => '{title_legend},headline,alias,author;{date_legend},date,time;{teaser_legend},subheadline,teaser;{image_legend},addImage;{enclosure_legend:hide},addEnclosure;{source_legend:hide},source;{expert_legend:hide},cssClass,noComments,featured;{publish_legend},published'
),
'default' wird also mit einem String initialisiert, dessen Aufbau relativ offensichtlich ist. Jetzt geht es darum, in diesen String deinen zusätzlichen Abschnitt und dein darin stehendes Feld unterzubringen. Im Ergebnis sollte der String dann so aussehen:
PHP-Code:
'{title_legend},headline,alias,author;{date_legend},date,time;{teaser_legend},subheadline,teaser;{school_legend},location;{image_legend},addImage;{enclosure_legend:hide},addEnclosure;{source_legend:hide},source;{expert_legend:hide},cssClass,noComments,featured;{publish_legend},published'
Das dürfte aber dein str_replace eigentlich nicht korrekt bewerkstelligen, weil der Suchstring "teaser" mehrfach vorkommt und somit jedes Vorkommen auch ersetzt werden müsste. Klappen müsste ein str_replace('teaser;', 'teaser;{school_legend},location;', $GLOBALS...);
Denn der Suchstring 'teaser;' kommt nur einmal vor. Man macht es per Stringmanipulation, damit es möglichst "updatesicher" ist. Natürlich ist es trotzdem nicht absolut updatesicher, falls nach "teaser" noch ein weiteres Feld im Abschnitt teaser_legend eingefügt würde, wird der Suchstring 'teaser;' nicht mehr gefunden und somit deine Ergänzung nicht mehr durchgeführt. Solange nicht genau diese Änderung an dieser Stelle passiert, klappt es aber immerhin. Es ist also immer noch updatesicherer (netter Begriff), als wenn man den angestrebten String einfach direkt einsetzen würde. Das würde jegliche Änderungen am String, die durch ein Update eingeführt würden, direkt wieder wegwerfen. Eventuelle neu eingeführte Abschnitte und Felder wären weg. Es würde aber mit der aktuellen Contao-Version funktionieren, außer wenn noch andere Erweiterungen an dem String rumdoktorn . Müsste dann halt nach jedem Contao-Update geprüft und nötigenfalls angepasst werden.
Lesezeichen