Hallo,
folgende Schritte habe ich dem Tutorial https://contao.org/eigene-felder-hinzufuegen.html entnommen. Es geht darum die Seitenstruktur um ein Feld zu erweitern.
1. Schritt - Datenbank erweitern
Datei anlegen unter system/modules/x_mynavigation/config/database.sql mit folgendem Inhalt:
Code:
CREATE TABLE `tl_page` (
`childRootNode` char(1) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Dem Ordner x_mynavigation wurde übrigens ein x vorangestellt, damit TL das zum Schluß der Modul-Initalisierung ausführt (die Module werden alphabetisch geladen).
2. Schritt - DCA-Konfiguration erweitern
Datei anlegen unter system/modules/x_mynavigation/dca/tl_page.php. Die Standardpalette (default) ist folgendermaßen in der orginal tl_page.php deklariert:
Code:
'{title_legend},title,alias,type;followup,start,stop'
Somit habe ich wie im Tutorial empfohlen mit str_replace gearbeitet, um die Palette zu erweitern:
Code:
// Anpassung der Palette
$GLOBALS['TL_DCA']['tl_page']['palettes']['default']=str_replace('type', 'type,childRootNode', $GLOBALS['TL_DCA']['tl_page']['palettes']['default']);
// Hinzufügen der Feld-Konfiguration
$GLOBALS['TL_DCA']['tl_page']['fields']['childRootNode'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['childRootNode'],
'exclude' => true,
'default' => 0,
'inputType' => 'checkbox'
);
3. Schritt - Übersetzung hinzufügen
Datei anlegen unter system/modules/x_mynavigation/languages/de/tl_page.php mit folgendem Inhalt:
Code:
// Sprache deutsch
$GLOBALS['TL_LANG']['tl_page']['childRootNode']=array(
'Unter-Wurzelknoten',
'Handelt es sich bei diesem Knoten um einen Unter-Wurzelknoten (Teilbereich A, B, ...)?'
);
4. Schritt - Installation
Installationstool starten und auf Datenbank aktualisieren klicken.
Und nun zu meiner Frage: Warum wird das neu angelegte Feld nicht in der Seitenstruktur angezeigt? Das Installationstool hat die Änderung erkannt und korrekt in der DB angelegt. Die obigen Dateien werden auch durchlaufen... Ich arbeite mit Typolight 2.8.3.
Lesezeichen