Habe mich mal in Leos Contao-Buch belesen (S. 333ff.) und schon erreicht, dass einem Archiv eine Klasse vergeben werden kann: archiv.png
1. Modulordner inkl. Unterordner erstellt (x_, damit es hinter allen anderen modules-Ordnern steht)
/system/modules/x_archive_class
/system/modules/x_archive_class/config
/system/modules/x_archive_class/dca
/system/modules/x_archive_class/languages/de
2. Datenbank erweitert
Datei database.sql im config-Verzeichnis erstellt:
PHP-Code:
CREATE TABLE `tl_news_archive` (
`cssClass` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Anschließend das Installtool gestartet, um das Feld anzulegen - o.k.
3. DCA-Konfiguration
3.1 Erweiterung der Standardpalette
Datei tl_news_archive.php im dca-Verzeichnis erstellt:
PHP-Code:
$GLOBALS['TL_DCA']['tl_news_archive']['palettes']['default'] = str_replace
(
'allowComments',
'allowComments; {expert_legend:hide}, cssClass',
$GLOBALS['TL_DCA']['tl_news_archive']['palettes']['default']
);
3.2 Hinzufügen des Datenbankfeldes
PHP-Code:
$GLOBALS['TL_DCA']['tl_news_archive']['fields']['cssClass'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_news_archive']['cssClass'],
'exclude' => true,
'inputType' => 'text'
);
4. Übersetzung hinzugefügt
Datei tl_news_archive.php im languages/de-Verzeichnis erstellt:
PHP-Code:
$GLOBALS['TL_LANG']['tl_news_archive']['cssClass'] = array('CSS-Klasse', 'Hier können Sie eine oder mehrere Klassen eingeben.');
Bis hierher hat alles geklappt: Ich kann einem Archiv eine Klasse zuordnen und diese wird auch in der Datenbank korrekt gespeichert. Es bleiben zwei Probleme:
1. {expert_legend:hide} (s. 3.1) wird als "expert_legend" ausgegeben und nicht als "Experten-Einstellungen", :hide hingegen funktioniert.
2. Ich weiß nicht, was ich nun tun muss, damit der Klassen-Wert aus der Tabelle auch am Beitrag zur Verfügung steht. Der Test mit <?php $this->showTemplateVars(); ?> hat gezeigt, dass dies nicht so einfach automatisch passiert.
Schon mal Danke im Voraus.
Hagord
p.s.
Anschließend will ich den parseFrontendTemplate-Hook benutzen, um die news_full.html5 um die Ausgabe der Archivklasse zu ergänzen. Liege ich da richtig?
Lesezeichen