Klassen in Contao überschreiben

Um Klassen in einem Contao Modul zu überschreiben, wird in der config/config.php die eigene Klasse registriert:

$GLOBALS['FE_MOD']['navigationMenu']['navigation'] = ModuleMeineUeberschriebeneNavigationKlasse

Wir wollen ja eine bestehende Klasse erweitern, deswegen muß sich der Eintrag mit einem bestehenden Modul decken. Am besten schaut man dazu in das entsprechende Modul. Anschließend definiert man die Klasse im eigenen Modul-Ordner. Bitte darauf achten, dass der Ordner im Alphabet nach dem zu überschreibenden Modul kommt, da Contao die Module in alphabetischer Reihenfolge einliest. Die Klasse selbst leitet dann von der bereits vorhandenen Klasse ab:

class ModuleMeineUeberschriebeneNavigationKlasse extends ModuleNavigation
{
  // Hier wird Funktionalität überschrieben / erweitert
}

Ein eigener inputType in Contao

Ursprünglich wollte ich nur den Wert des tstamp Feldes eines Contao Backend Modules als Informationsfeld anzeigen lassen. Ich dachte, dass gibts sicherlich und deswegen schaute ich auf die Contao Dokumentation “Internal structure of a Data Container Array” unter den bereits vorhandenen Feldern nach. Zu meiner Verwunderung gab es da unter Felder nur folgende Liste:

  • text Textfeld
  • password Passwortfeld
  • textarea Textarea
  • select Drop-Down-Menü
  • checkbox Checkbox
  • radio Radio-Button
  • radioTable Tabelle mit Bildern und Radio-Buttons
  • inputUnit Textfeld mit Drop-Down-Menü zur Auswahl der Einheit
  • trbl Vier Textfelder mit Drop-Down-Menü zur Auswahl der Einheit
  • chmod CHMOD-Tabelle
  • pageTree Seitenbaum
  • fileTree Dateibaum
  • tableWizard Tabellenassistent
  • listWizard Listenassistent
  • optionWizard Optionsassistent
  • moduleWizard Modulassistent
  • checkboxWizard Checkbox-Assistent

Abgesehen von den ganzen Exoten gab es kein Feld, dass den Wert nur als “Label”, also als einfachen String anzeigt. In meinem Fall benötige ich ein Feld, dass einen Timestamp in ein Datum umwandelt und im Backend anzeigt.

Continue reading