Earl Miles ("Merlinofchaos") hielt einen der letzten, vielbesuchten Vorträge auf der Drupalcon über Änderungen beim Theming. Im Gegensatz zu vielen vorhergehenden Versionswechseln von Drupal wird sich das Theming zu Version 6 wieder entscheidend verbessern.
- Einführung von .info-Dateien
- Vergleichbar zu den .info-Dateien in den Modulen, die die metainformationen enthalten, werden diese nun auch für Themes eingeführt.
- Trennung von Logik und Präsentation und bessere _phptemplate_variables
- Die .tpl.php Dateien beschränken sich auf die Präsentation. Ihnen werden template_preprocess_ Funktionen vorangestellt, die die entscheidenden Variablen erzeugen, die dann in den .tpl.php-Dateien verwendet werden können.
- Theme Vererbung
- Themes können auf andere Themes aufbauen und die einfache Erzeugung von Sub-Themes wird möglich, die die Vorlage referenzieren und die Änderungen dazu definieren.
- CSS-Themes
- Durch die Einführung der .info-Dateien werden auch Themes möglich, die keine Template Dateien enthalten, sondern Seitenelemente nur per CSS gestalten und positionieren.
- Theme engines auch erweitert
- Die verbesserten Eigenschaften gelten auch für die Theme-Engines.
- Bessere Dokumentation
- Es ist Dokumentation erhältlich und auch die .tpl.php Dateien wurden zur besseren Orientierung kommentiert.
- 31 Templates erhältlich
- Zum Stand des Vortrags waren bereits 31 Themes für Drupal 6 erhältlich.
.info-Dateien
Wie bei Modulen beschreiben .info-Dateien das Theme. Auch die Syntax ist analog.

Die Existenz eines neuen Themes wird somit nicht mehr and der Datei page.tpl.php erkannt, sondern an der .info-Datei. Damit werden auch Themes ohne jene Datei möglich, z.B. reine CSS-Themes oder der gänzliche Verzicht auf nähere Theme-Erweiterungen.
Trennung von Logik und Präsentation
Früher waren .tpl.php Dateien sehr häufig überladen und entsprechend schlecht zu überschauen, obwohl sie eigentlich nur die Funktion haben sollten, das Grundmuster einer Seite oder eines Seitenobjekts darzustellen. Grund dafür war der festgelegte Vorrat an übergebenen Variablen an die Template-Datei.
Zukünftig kann der Designer mit einer template_prepocess_Seiten_Element Funktion genau definieren, wie die Variablen heißen sollen. Im Vortrag wurde als Beispiel die Formatierung eines aggregator-items gezeigt.

Die neuen Template Dateien greifen nun die neuen Variablen auf und sind zudem ausführlicher kommentiert.

Theme Vererbung
Es kann ein "base theme" definiert werden, dessen Eigenschaften übernommen und im "sub theme" überschrieben und ergänzt werden können.
- Ein sub theme setzt das "base theme" in der .info-Datei
- Ein sub theme erbt alle style sheets
- Ein sub theme erbt alle templates
- Ein sub theme enthält alle Funktionen aus der template.php
Ein sub theme sollte daher niemals phptemplate_* Funktionen definieren, da es sonst zu Namenskollisionen kommen würde. Stattdessen sollten die Funktionen dort themename_* heißen, so wie sie auch in Drupal5 bereits phptemplate_* Funktionen überschreiben konnten.
Weitere Informationen
Neue template Dateien können dank besserer Kommentierung als weiterführende Beispiele dienen. Das neue Theming ist im Web z.B. unter http://drupal.org/node/165706 näher dokumentiert.
- Weblog von Marco Rademacher
- Anmelden oder Registrieren um Kommentare zu schreiben