Grundlegendes

Aufgrund der Trennung von Form und Inhalt muss ein Content Management System unterschiedliche dynamische Inhalte in die gewünschten Form bringen können. Ein häufig verwendetes Verfahren ist es in der Ausgabevorlage (normalerweise Template genannt) spezielle Tags zur Steuerung der Ausgabe zu verwenden. Mit diesen Tags werden spezielle Inhalte, Listen oder Datenbankeinträge in die Ausgabevorlage integriert bzw. transformiert.

Typo3 geht hier mit TypoScript einen entscheidenden Schritt weiter, da mit TypoScript (TS) die Ausgabevorlage (d.h. das Template) selbst erstellt werden kann und die Kontrolle über die Ausgabe und das Format weitaus größer ist, als es mit normalen HTML-Templates möglich wäre.

Mit den in TypoScript definierten Informationen lassen sich nicht nur dynamische Inhalte in eine Ausgabevorlage einfügen, sondern es ist auch möglich das Erscheinungsbild im Frontend zu beeinflussen. Das Rahmenlayout kann dabei komplett mit TypoScript erzeugt oder aus einer HTML-Datei (auch Designvorlage genannt) entnommen werden. Dabei lassen sich dynamisch Menüs erzeugen und ihre Darstellung kann individuell festgelegt werden. Erstellen Sie zur Laufzeit Grafiken aus Texten oder steuern Sie das Layout abhängig von Zeit oder Benutzern. Es ist weiters möglich das Verhalten des Backends für einzelne Benutzer und Gruppen über TypoScript zu steuern.

TypoScript übernimmt dabei die Rolle des Vermittlers von Informationen an Funktionen, die in Typo3 mittels PHP implementiert sind oder durch Extensions hinzugefügt worden sind. Typo3 ist keine Programmier- oder Skriptsprache und daher nicht mit PHP, Java oder JavaScript vergleichbar. TypoScript dient als Informationsträger und als Beschreibungssprache. Die verwendete Syntax erlaubt die Definition von hierarchischen Informationen in einer Baumstruktur. So können beliebige Informationen dank TypoScript an das System weitergegeben werden. Doch nur die vom System abgefragten Objekte und Eigenschaften beeinflussen das Backend und Frontend.

Technischer Hintergrund

Die Erzeugung der Ausgabe geschieht mittels der TypoScript Frontend Engine (TSFE). Diese wertet die Informationen der Template-Datensätze aus. Die über TypoScript strukturierten Objekte und Werte der Template-Datensätze werden dabei über der PHP-basierten TSFE verarbeitet und ausgegeben.
  • Die Informationen werden von Typo3 in ein mehrdimensionales PHP-Array überführt und stehen danach den Typo3-Klassen und Funktionsbibliotheken zur Verfügung.
  • Werden Informationen an das PHP-Array übergeben, die dabei nicht von Typo3-Klassen oder Funktionen verwendent werden, so werden diese nicht beachtet und führen auch zu keiner Fehlerausgabe.

So wird z.B folgender beispielhafter TypoScript-Code in ein mehrdimensionales PHP-Array wie folgt transformiert.
meinObjekt.eigenschaft1 = x
meinObjekt.eigenschaft2 = y
meinObjekt.eigenschaft2.eigenschaft3 = xy


In PHP würde das Array wie folgt direkt erzeugt:
$TS['meinObjekt.']['eigenschaft1'] = 'x';
$TS['meinObjekt.']['eigenschaft2'] = 'y';
$TS['meinObjekt.']['eigenschaft2.']['eigenschaft3'] = 'xy';


Typo3 bietet hier auch ein spezielles Werkzeug um die Baumstruktur der TypoScript-Anweisungen zu visualisieren. Über  Web > Templates gelangen Sie zu den Template-Werkzeugen. Mittels TypoScript Object Browser können Sie den Baum (siehe Abbildung unten) anzeigen lassen.


Wie Sie mit den Template-Werkzeugen umgehen können, wird auch in dem Modul TypoScript, Templates und Designvorlagen näher erläutert.