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.