von Jan Loderhose, 01.03.2009

Aspektorientierte Konfiguration schafft Überblick und Ordnung: TypoScript mit Struktur

Aus dem
t3n Magazin Nr. 15

Jetzt kaufen

TypoScript ist das Werkzeug eines jeden TYPO3-Administrators, um aus dem Content Management System ein dynamisches und skalierbares Redaktionssystem zu machen, das den Anforderungen fast jeder zu erstellenden Website gerecht wird. Je mehr Funktionen konfiguriert werden, desto umfangreicher und komplexer wird jedoch das zugrunde liegende TypoScript. Wir zeigen, wie eine klare Struktur dabei hilft, den Überblick zu behalten.

Zur alltäglichen Arbeit eines TYPO3-Administrators gehört der Umgang mit TypoScript. Für viele ist die Komplexität dieses mächtigen Konfigurationswerkzeugs eine Hürde für schnelles und effizientes Arbeiten. Mit steigenden Anforderungen an eine Website wachsen auch die Anforderungen an den Administrator, der den Überblick über viele 100 bis 1.000 Zeilen Code behalten muss. Der Aufwand lässt sich mit einem System zur eindeutigen Strukturierung der Konfigurationen für große, aber auch kleine TYPO3-Projekte entscheidend verringern.

Aspektorientierte Konfiguration

Stündlich werden auf den TYPO3-Mailinglisten Fragen zu TypoScript gestellt und nicht selten schelten sich die Fragenden nach einer Antwort selber, Tomaten auf den Augen gehabt zu haben, wenn nach näherer Betrachtung der Fehler offensichtlich war. Wirft man einen Blick auf die geposteten Script-Schnipsel, ist die Ursache oft ein unaufgeräumtes und unübersichtliches Gewirr an TypoScript-Anweisungen, die es schwer machen, schon bei wenig Code den Überblick zu behalten.

Eine große Erleichterung bietet die Fähigkeit des TypoScript-Parsers, mehrere hierarchisch aufeinander aufbauende TypoScript-Templates miteinander zu kombinieren. Dadurch lässt sich die Konfiguration in verschiedene Templates aufteilen, die alle möglichen Websites in ein und dieselbe Grundstruktur aufteilen. So findet sich ein Administrator in allen von ihm betreuten Projekten schnell zurecht, selbst wenn er länger nicht an einer Website gearbeitet hat.

Ein hilfreicher Ansatz ist es, die verschiedenen Aspekte einer Website in ihrer Konfiguration strikt voneinander zu trennen. In einem TypoScript-Template, das Navigationselemente definiert, hat beispielsweise die Einbindung von CSS-Stylesheets nichts zu suchen, denn beide Bestandteile haben miteinander nichts zu tun. Damit orientiert sich dieser Ansatz grob am aspektorientierten Programmieren, dem Programmierparadigma, dem auch das kommende 5.0 unterliegt.

TypoScript-Templates, die unterschiedliche Aspekte behandeln, werden im Basis-Template der Root-Page zusammengeführt.

TypoScript-Templates, die unterschiedliche Aspekte behandeln, werden im Basis-Template der Root-Page zusammengeführt.

Aspekte, die fast jede aktuelle Website besitzt, sind die Basiskonfiguration (config), sprachspezifische Einstellungen (languages), vermutlich Suchmaschinenoptimierung (seo), Navigationselemente (navigation) und diverse TYPO3-Erweiterungen.

Kombiniert werden diese Aspekte in einem separaten TypoScript-Template, das die Struktur des (X)HTML-Templates widerspiegelt (structure), und durch das einfache Einbinden der verschiedenen Templates in das Basis-Template der Root-Page. Dabei ist es egal, ob mit TemplaVoilà [1] oder Markern gearbeitet wird. Wichtig ist dagegen die Reihenfolge, mit der die verschiedenen Aspekte in das Basis-Template eingebunden werden. Denn die in einem TypoScript-Template hinterlegten Definitionen stehen nur in den, von oben nach unten betrachtet, nachfolgenden Templates zur Verfügung.

„config“ enthält Konfigurationselemente, die auf das gesamte Projekt anwendbar sind, zum Beispiel die Linkerzeugung, die Konfiguration des (X)HTML-Headers, das Einbinden von CSS und JavaScript sowie das Verhalten des Systems bei vorhandenen oder fehlenden Übersetzungen von Inhalten. Das Template „config“ muss als Erstes eingebunden werden. In „languages“ werden die verschiedenen Sprachen und deren IDs festgelegt.

Seite:  1 2 3 4 5