10.2 Aufbau eines Themes in Drupal
In diesem Abschnitt möchte ich Ihnen die Eigenheiten von Drupal-Themes näher bringen.
10.2.1 Drupals Theme-Engine: PHPTemplate
Um eine Seite für die Browserausgabe vorzubereiten, werden von Drupal normalerweise mehrere Template-Dateien hintereinander aufgerufen. Die einzelnen Elemente einer Drupal-Seite wie Nodes und Blöcke besitzen jeweils eigene Template-Dateien.
Welche Template-Dateien bei einem Seiten-Abruf in welcher Reihenfolge geladen werden, bestimmt die so genannte Theme-Engine (Anzeige-Maschine). Die Drupal-Entwickler haben eine eigene Theme-Engine entwickelt, die im Drupal-Core enthalten ist: PHPTemplate. PHPTemplate-Dateien haben immer die Datei-Endung tpl.php:

Abbildung 10.1: Aufbau eines typischen PHPTemplate Drupal-Themes
Die wichtigsten Template-Dateien eines Drupal Themes sind
page.tpl.php: Dient als Rahmen der Seite und enthält strukturelle HTML-Elemente wie z.B. html, head und body sowie Informationen über eingebundene Javascript- und CSS-Dateien.
node.tpl.php: Fast alle Inhalte werden in Drupal als Nodes in der Datenbank gespeichert. Bei der Ausgabe von Nodes, egal ob als Teaser oder seitenfüllend, wird diese Datei verwendet.
block.tpl.php: Wird für die Ausgabe von Blöcken aufgerufen.
Den Inhalt einer typischen Template-Datei sehen Sie in Listing 1, und zwar am Beispiel von block.tpl.php aus dem Ordner [drupal]/modules/system/. Die Datei besteht aus XHTML-Elementen und Platzhaltern in Form von PHP-Code (eingeschlossen in <?php ?>-Tags). Jedes Mal, wenn Drupal einen Block ausgibt, wird diese Template-Datei aufgerufen und mit Inhalten befüllt.
<div id="block-<?php print $block->module .'-'.
$block->delta; ?>" class="block block-<?php print $block->module ?>">
<?php if ($block->subject): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content">
<?php print $block->content ?>
</div>
</div>
Listing 10.1: aus dem Drupal-Core (modules/system/block.tpl.php)
10.2.2 Aufbau eines Themes in Drupal 6
Drupal 6 erleichtert das Leben eines Themers im Vergleich zu den Vorgängerversionen deutlich und ermöglicht Änderungen am Theme auch für Menschen ohne tiefgehende PHP-Kenntnisse.
Dies betrifft in erster Linie so genannte Funktionen, die in Drupal 5 noch die Datei template.php benötigten. Sie können jetzt teilweise bequem über die themename.info-Datei völlig ohne PHP-Kenntnisse konfiguriert werden.
Als Beispiel verwende ich hier das Drupal-Core-Theme Garland. Um Änderungen zu veranschaulichen, habe ich den Inhalt des Ordners themes/garland in das Verzeichnis sites/all/themes/garland_new kopiert.
Die mitgelieferten Core-Themes liegen im Ordner /drupal/themes, alle anderen Themes hingegen in sites/all/themes oder bei einer Multisite-Installation (siehe Abschnitt 9.9 Multisite: Viele Sites mit einem Drupal) im entsprechenden Website-Ordner.

Abbildung 10.2: Struktur des Drupal 6-Core-Themes „Garland Neu“ (für dieses Kapitel modifiziert)
Die Struktur des veränderten Garland-Themes können Sie Abbildung 2 entnehmen. Dabei ist rechts der Inhalt der für dieses Kapitel angepassten Datei garland_new.info abgebildet.
Alle Regionen liefern eine Variable mit ihrem Inhalt, der in page.tpl.php ausgegeben wird.
Seit Drupal 6 lassen sich die Regionen, die später auf der Block-Administrationsseite zur Verfügung stehen, hier definieren. Durch das Einfügen der Zeile
regions[neue_region] = Neue Region
wird die Region automatisch von Drupal erzeugt. Der Inhalt dieser Region wird in der neu erzeugten Variable $neue_region ausgegeben. Durch entsprechende Verwendung des Platzhalters <?php print $neue_region ?> in der Datei page.tpl.php wird der Inhalt dieser Variablen im Browser ausgegeben.
- Neuen Kommentar schreiben
- 4339 mal gelesen