Vererbung in TypoScript Templates nutzen

TypoScript-Code wird innerhalb einer TYPO3-Website vererbt. Die meisten Anweisungen lassen sich im Root Template auf oberster Ebene speichern.

Motivation

Die Idee zu diesem Beitrag entstand, als wir von einem Interessenten gebeten wurden, uns dessen TYPO3-System anzusehen. Er hatte bemängelt, dass strukturelle Änderungen, die von seinem Programmierer durchgeführt wurden, jedes Mal sehr lange dauern würden.

Negativbeispiel

Als wir uns die TypoScript-Templates ansahen, wurde schnell deutlich, was die langen Bearbeitungszeiten verursachte: Der Programmierer (ein TYPO3-Neuling) hatte das Root Template in die Startseite eingefügt und danach in alle Unterseiten kopiert. Prinzipiell funktioniert das, aber sobald Änderungen am TypoScript-Code notwendig sind, müssen diese in allen kopierten Templates nachgezogen werden.

Best Practice

Der hauptsächliche Teil der TypoScript-Programmierung sollte im so genannten "Root Template" in der Startseite (Homepage) einer Website enthalten sein.

Man kann ein Root Template anlegen, indem man in der Startseite einen neuen Template Record anlegt, der vom Typ "Template für neue Seite" ist — im Gegensatz zu "Erweiterungs-Templates", welche auf Unterseiten verwendet werden.

Zwei Arten der Ablage von TypoScript-Code

1. Man speichert alle Anweisungen in einem einzigen Root Template. Dieses Template kann je nach Komplexität der Website aber sehr umfangreich werden.

2. (empfohlen) Man verteilt die Anweisungen auf mehrere Templates, die dann in das eigentliche Root Template eingebunden werden. Die Aufteilung kann z.B. nach Websitebereichen erfolgen (Navigationen, Header, Footer, Content etc.).

Vererbung anwenden

Der Code eines TypoScript-Templates wird auf alle darunter liegenden Seiten vererbt. Es ist also nicht notwendig, das gesamte Template auf die Unterseiten zu kopieren.

Sollen in einer Unterseite bestimmte Anweisungen des Root Templates nicht oder in anderer Weise ausgeführt werden genügt es, nur den dafür notwendigen Code anzupassen. Ebenso ist es ausreichend, Template-Code, der für Extensions benötigt wird, nur (per "Erweiterungs-Template") auf den Seiten einzubinden, auf denen sich die jeweilige Extension befindet.

Wichtig bei Erweiterungs-Templates ist es, dass keine Häkchen in den Checkboxen bei "Constants" und "Setup" (unter "Löschen" im Reiter "Optionen") gesetzt sind, da sonst alle vererbten TypoScript-Anweisungen ignoriert werden würden.