Glossar

TypoScript

Die Konfigurationssprache, mit der in TYPO3 festgelegt wird, was das Frontend ausgibt und wie es sich verhält.

Wofür TypoScript da ist

TypoScript beantwortet in TYPO3 die Frage, was auf einer Seite ausgegeben wird. Welche Templates greifen, wie Inhaltselemente gerendert werden, welche Menüs es gibt, wie Bilder verarbeitet werden, welche Metadaten im Kopf der Seite landen: All das steht in TypoScript.

Der Aufbau ist eine verschachtelte Struktur aus Schlüsseln und Werten. Wer schon einmal eine Konfigurationsdatei bearbeitet hat, findet sich schnell zurecht; ungewohnt ist vor allem, wie viel sich damit steuern lässt.

Setup und Constants

TypoScript kennt zwei Bereiche. Im Setup steht die eigentliche Konfiguration. In den Constants stehen Werte, die an mehreren Stellen gebraucht werden: Pfade, Seiten-IDs, Grundeinstellungen.

Der Sinn der Trennung ist Wartbarkeit. Wenn sich die ID einer Seite ändert, soll das an einer Stelle geändert werden und nicht an sieben. Genau dieselbe Überlegung steckt hinter Variablen in jeder anderen Konfiguration.

Bedingungen

Mit Conditions lassen sich Teile der Konfiguration abhängig vom Kontext aktivieren: je nach Sprache, je nach Seitenbereich, je nach Benutzergruppe. Das ist mächtig und wird gern überstrapaziert.

Als Faustregel: Wenn eine Konfiguration mehr Bedingungen als Werte enthält, ist meistens die Struktur der Seite das eigentliche Problem und nicht die Konfiguration.

Wo es im Projekt auftaucht

TypoScript begegnet einem in fast jedem TYPO3-Projekt, das über die Standardausgabe hinausgeht. Es ist der Ort, an dem das Sitepackage mit dem System verbunden wird, und meist die erste Stelle, an die man schaut, wenn im Frontend etwas anders aussieht als erwartet.

Wie TypoScript in die Installation kommt

Historisch hängt TypoScript an einem Datensatz im Seitenbaum. Er verweist auf Dateien im Sitepackage und legt fest, ab welcher Seite die Konfiguration gilt. Weiter unten im Baum kann ein zweiter Datensatz ergänzen oder überschreiben.

Seit TYPO3 13 gibt es mit Site Sets einen zweiten Weg: Eine Extension deklariert ein Set, die Site-Konfiguration bindet es ein, und TypoScript, Seiten-TSconfig und Einstellungen kommen gemeinsam mit. Der Vorteil ist, dass die Zuordnung in Dateien steht statt in der Datenbank. Mehr dazu unter Site Set.

Objekte statt Anweisungen

TypoScript beschreibt keine Abläufe, sondern Objekte. Ein PAGE-Objekt steht für die auszugebende Seite, ein FLUIDTEMPLATE bindet ein Fluid-Template samt Variablen ein, ein COA fasst mehrere Teile zusammen, HMENU erzeugt ein Menü, CONTENT holt Datensätze aus der Datenbank.

Diese Objekte lassen sich ineinander schachteln. Daraus entsteht der Eindruck, TypoScript sei eine Programmiersprache. Es ist keine: Es gibt keine Schleifen im üblichen Sinn und keine eigenen Funktionen, sondern eine Menge vorgefertigter Objekte mit vielen Eigenschaften.

stdWrap

Viele Eigenschaften lassen sich mit stdWrap nachbearbeiten: Text kürzen, ein Datum formatieren, einen Standardwert setzen, etwas umschließen, HTML entfernen. Dieselbe Sammlung an Funktionen steht an sehr vielen Stellen zur Verfügung.

Das erklärt, warum TypoScript-Beispiele aus dem Netz oft überraschend kurz sind. Was nach einer Spezialfunktion aussieht, ist meistens stdWrap an einer weiteren Eigenschaft.

Was TypoScript nicht ist

TypoScript konfiguriert das Frontend. Für das Backend gibt es TSconfig, das dieselbe Syntax nutzt, aber andere Dinge steuert: welche Inhaltselemente zur Auswahl stehen, wie der Seitenbaum aussieht, welche Felder eine Redakteurin sieht.

Die Namensähnlichkeit sorgt zuverlässig für Verwechslungen. Wer eine Einstellung im Backend sucht und sie in TypoScript ändert, wartet vergeblich auf eine Wirkung.

Wenn etwas nicht greift

Im Backend gibt es ein eigenes Modul für TypoScript. Es zeigt die zusammengesetzte Konfiguration für eine bestimmte Seite, und genau das ist bei Problemen der entscheidende Punkt: Was gilt, ergibt sich aus mehreren Einbindungen, aus Bedingungen und aus der Position im Seitenbaum.

Der zweithäufigste Grund ist banal. Die Konfiguration ist richtig, wird auf der betrachteten Seite aber gar nicht eingebunden.

Häufige Fragen

Ist TypoScript eine Programmiersprache?

Nein. TypoScript beschreibt eine Konfiguration, keine Abläufe. Es gibt keine Schleifen und keine Funktionen im üblichen Sinn; man setzt Werte in einer verschachtelten Struktur und legt Bedingungen fest, unter denen andere Werte gelten.

Diese Unterscheidung ist praktisch relevant. Wer TypoScript wie eine Programmiersprache behandelt, baut Konstruktionen, die schwer zu lesen und beim Update anfällig sind. Alles, was echte Logik braucht, gehört in PHP.

Wo wird TypoScript abgelegt?

In Dateien innerhalb des Sitepackages, eingebunden über die Site-Konfiguration oder ein Template-Datensatz. So liegt die Konfiguration in Git und ist nachvollziehbar.

Es ist auch möglich, TypoScript direkt in einem Datenbankdatensatz zu pflegen. Davon raten wir ab: Änderungen dort sind nicht versioniert, und niemand kann später beantworten, wann etwas warum geändert wurde.

TypoScript, das niemand mehr liest?

Gewachsene Konfiguration lässt sich entwirren. Wir sehen uns an, was davon noch gebraucht wird und was nur noch mitläuft.