Manuel Killert
Ratgeber · TYPO3 · TypoScript

TypoScript greift nicht — meist liegt es an der Reihenfolge.

TypoScript ist der Teil von TYPO3, der Einsteiger am meisten irritiert: Es gibt keine Fehlermeldung, wenn etwas nicht wirkt. Die Konfiguration ist einfach da — oder eben nicht. Der Weg zur Ursache führt über zwei Werkzeuge, die kaum jemand kennt.

Referenzen ansehen →Projekt anfragen
Kurz gesagt

TypoScript ist die Konfigurationssprache, mit der in TYPO3 gesteuert wird, was ausgegeben wird. Wenn etwas nicht wirkt, liegt es fast immer an einer von drei Sachen: Die Konfiguration ist gar nicht eingebunden, sie wird später überschrieben, oder sie steht an einer Stelle im Seitenbaum, die für diese Seite nicht gilt. Der Object Browser zeigt, was tatsächlich ankommt — das ist das wichtigste Werkzeug.

Was TypoScript ist.

TypoScript ist keine Programmiersprache, sondern eine Konfiguration: eine Sammlung von Einstellungen in einer verschachtelten Struktur. Sie bestimmt, welche Vorlagen verwendet werden, wie Inhaltselemente ausgegeben werden, welche Dateien eingebunden werden und wie Menüs aufgebaut sind.

Für die Fehlersuche wichtig: TypoScript wird von oben nach unten zusammengesetzt. Spätere Zeilen überschreiben frühere. Es gibt keinen Fehler, wenn du etwas doppelt setzt — der letzte Wert gewinnt. Genau das ist die häufigste Ursache für „greift nicht“: Irgendwo weiter unten steht derselbe Wert nochmal.

Der Object Browser.

Das wichtigste Werkzeug und viel zu wenig genutzt. Zu finden im Modul für Template-Verwaltung: Dort lässt sich für eine ausgewählte Seite der gesamte zusammengesetzte TypoScript-Baum ansehen — also das, was nach allen Einbindungen und Überschreibungen tatsächlich gilt.

Damit beantwortest du in Sekunden die Frage, die sonst Stunden kostet: Ist mein Wert überhaupt da? Steht dort etwas anderes als erwartet, wurde überschrieben. Steht dort gar nichts, ist die Konfiguration nicht eingebunden. Zusätzlich gibt es eine Suchfunktion im Baum — damit findest du auch, wo ein unerwarteter Wert herkommt.

Ist es überhaupt eingebunden?

TypoScript kommt aus mehreren Quellen: aus Template-Datensätzen im Seitenbaum, aus Dateien von Extensions, aus eigenen Dateien des Templates. Damit eine Datei wirkt, muss sie eingebunden sein — über eine entsprechende Anweisung im Template-Datensatz oder über die statischen Vorlagen, die eine Extension mitbringt.

Der häufigste Anfängerfehler: Eine Datei wird angelegt, aber nie eingebunden. Prüfe im Template-Datensatz, welche Dateien und statischen Vorlagen dort aufgeführt sind — und in welcher Reihenfolge.

Die Reihenfolge entscheidet.

SituationWas passiert
Eigene Datei vor Extension-VorlageExtension überschreibt deine Werte
Eigene Datei nach Extension-VorlageDeine Werte gewinnen — meist gewollt
Zwei eigene Dateien mit gleichem WertDie spätere gewinnt
Template-Datensatz tiefer im BaumÜberschreibt den weiter oben

Die Faustregel: Eigene Anpassungen gehören ganz nach unten. Wenn eine Einstellung nicht wirkt, ist der erste Verdacht, dass etwas danach sie zurücksetzt — besonders bei Extensions, die ihre eigenen Standardwerte mitbringen.

Vererbung im Seitenbaum.

Template-Datensätze gelten für eine Seite und alles darunter. Ein Datensatz auf der Startseite gilt also für die ganze Website. Ein weiterer Datensatz tiefer im Baum ergänzt oder überschreibt ihn — je nach Einstellung.

Entscheidend ist dabei ein Schalter im Template-Datensatz, der bestimmt, ob die Konfiguration von weiter oben überhaupt übernommen wird. Ist er nicht gesetzt, startet der Zweig von vorn — und plötzlich fehlt die halbe Konfiguration. Das ist die klassische Ursache dafür, dass ein einzelner Bereich der Website anders aussieht als der Rest.

Bedingungen.

TypoScript kann Konfiguration an Bedingungen knüpfen — etwa nach Sprache, Benutzergruppe, Gerät oder Seite. Das ist mächtig und eine häufige Fehlerquelle: Eine Bedingung, die nicht zutrifft, lässt den Block still unwirksam.

Beim Debuggen lohnt deshalb, Bedingungen testweise auszukommentieren, um zu sehen, ob der Inhalt dann greift. Und bei der Verwendung: Jede Bedingung muss sauber beendet werden, sonst gilt alles Folgende ebenfalls nur unter dieser Bedingung — ein Fehler, der weit entfernte Teile der Konfiguration lahmlegt.

Typische Syntaxfallen.

  • Zuweisung statt Zusammenführung: Ein einfaches Gleichheitszeichen ersetzt den ganzen Wert, auch verschachtelte Teile darunter.
  • Fehlende geschweifte Klammer — der Block endet dann nicht dort, wo man denkt.
  • Leerzeichen am Zeilenende werden Teil des Werts.
  • Kommentare mitten im Block können je nach Schreibweise den Block beenden.
  • Groß- und Kleinschreibung: TypoScript unterscheidet sie.
  • Mehrzeilige Werte brauchen eine eigene Schreibweise, sonst wird nur die erste Zeile übernommen.

Die erste Zeile ist die häufigste: Wer einen ganzen Konfigurationsblock mit einem Gleichheitszeichen überschreibt, löscht alles darunter liegende mit. Für Ergänzungen gibt es eine andere Schreibweise, die nur den angegebenen Teil ändert.

Setup und Constants.

Ein Template-Datensatz hat zwei Felder: Constants für Werte, die sich ändern sollen — Farben, Pfade, Schalter —, und Setup für die eigentliche Konfiguration. Constants werden im Setup über eine Platzhalter-Schreibweise eingesetzt.

Der Sinn: Wer eine Farbe ändern will, muss nicht die Konfiguration anfassen, sondern nur den Wert in den Constants. Gut gebaute Templates nutzen das konsequent. Ein häufiges Problem bei geerbten Installationen ist, dass Werte direkt im Setup stehen und an zwanzig Stellen geändert werden müssen — das ist kein Fehler, aber ein Grund, warum Anpassungen teuer werden.

Caching.

Änderungen an TypoScript wirken erst nach dem Leeren der Caches — und zwar nicht nur des Seiten-Caches, sondern des System-Caches, weil die zusammengesetzte Konfiguration dort abgelegt wird. Wer eine Änderung macht und nichts sieht, hat in neun von zehn Fällen den Cache nicht vollständig geleert.

Beim Arbeiten lohnt es sich, den Cache zwischen jeder Änderung zu leeren, sonst testet man gegen einen alten Stand und sucht Fehler, die längst behoben sind (Cache leeren).

Vorgehen bei Problemen.

  1. Caches leeren, bevor du überhaupt suchst.
  2. Object Browser öffnen für die betroffene Seite und nach dem Wert suchen.
  3. Ist der Wert da? Wenn nein: nicht eingebunden oder Bedingung trifft nicht zu.
  4. Ist ein anderer Wert da? Dann wird überschrieben — Reihenfolge prüfen.
  5. Template-Datensätze im Baum prüfen: Gibt es weiter unten einen, der nicht erbt?
  6. Bedingungen testweise entfernen.
  7. Syntax prüfen: Klammern, Gleichheitszeichen, Zeilenenden.

In dieser Reihenfolge findet man die allermeisten Fälle in wenigen Minuten. Bleibt es unklar, lohnt der Blick ins Protokoll — manche Fehler, etwa in eingebundenen Dateien, tauchen dort auf (Protokoll finden).

Wenn du nicht weiterkommst.

Wenn eine Konfiguration nicht greift und du nicht findest, wo sie überschrieben wird, schaue ich mir den Template-Aufbau an. Schreib mir mit Domain, TYPO3-Version und einer kurzen Beschreibung — du bekommst eine ehrliche Einschätzung, ob ich der Richtige bin. Den Überblick über alle Themen gibt TYPO3-Fehler beheben. Wenn sich am Ende herausstellt, dass ein Wechsel die bessere Lösung ist: TYPO3 zu WordPress.

Fehleranalyse & Erste Hilfeab ~150 €

Ursache finden, Website wieder zum Laufen bringen, kurzer Bericht — meist am selben Tag.

Stundensatz~95 €

Für Anpassungen, Fehlerbehebung und Beratung nach Aufwand, abgerechnet in 15-Minuten-Schritten.

Wartungab ~49 €/Monat

Updates, Backups, Sicherheitscheck, Monitoring — Kleinigkeiten inklusive.

Orientierungswerte, keine Fixpreise — nach einem kurzen Gespräch bekommst du ein Festpreisangebot.

Wer hilft.

Ich bin Manuel Killert, Web-Entwickler aus Quakenbrück. Mein Schwerpunkt liegt auf WordPress — an TYPO3-Installationen arbeite ich dort, wo es um Betrieb und Fehlersuche geht: Ausfälle, Serverthemen, Datenbank, Mailversand, Updates und die Frage, wie es mit einer alten Installation weitergehen soll. Das sind die Probleme, bei denen die Ursache meist nicht im System selbst liegt, sondern darunter. Geht es um tiefe Entwicklung in TYPO3 — eigene Extensions, komplexe Mehrsprachigkeit, große Redaktionssysteme —, sage ich dir das offen und empfehle jemanden, der genau das macht. Ehrlich beraten heißt für mich auch, eine Anfrage abzugeben.

Häufige Fragen

FAQ — TypoScript-Fehler.

Was ist TypoScript?

Die Konfigurationssprache von TYPO3 — keine Programmiersprache, sondern eine verschachtelte Sammlung von Einstellungen, die bestimmt, was und wie ausgegeben wird.

Warum greift meine TypoScript-Änderung nicht?

Meist weil die Konfiguration nicht eingebunden ist, später überschrieben wird oder an einer Stelle im Seitenbaum steht, die für diese Seite nicht gilt. Oder der Cache wurde nicht vollständig geleert.

Was ist der Object Browser?

Ein Werkzeug im Template-Modul, das den zusammengesetzten TypoScript-Baum für eine Seite zeigt — also das, was nach allen Einbindungen tatsächlich gilt. Damit sieht man in Sekunden, ob ein Wert ankommt.

Warum sieht ein Bereich der Website anders aus als der Rest?

Oft weil dort ein eigener Template-Datensatz liegt, bei dem die Übernahme der Konfiguration von weiter oben nicht aktiviert ist. Dann startet der Zweig ohne die übergeordneten Einstellungen.

Was ist der Unterschied zwischen Setup und Constants?

Constants enthalten änderbare Werte wie Farben und Pfade, Setup die eigentliche Konfiguration. Gut gebaute Templates nutzen Constants, damit Anpassungen an einer Stelle möglich sind.

Muss ich nach TypoScript-Änderungen den Cache leeren?

Ja, und zwar den System-Cache, nicht nur den Seiten-Cache. Die zusammengesetzte Konfiguration wird dort abgelegt. Beim Arbeiten am besten nach jeder Änderung.

Manuel Killert (rechts im Bild) mit einem FreundDas bin ich – rechts im Bild
Kontakt

Erzähl mir, was an deinem TYPO3 klemmt.

Beschreib kurz das Problem und nenn mir die TYPO3-Version — du bekommst eine ehrliche Einschätzung, woran es liegt und was es kostet.

Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de