Verschiedene node.tpl.php für verschiedene Node Typen


Das Grundgerüst von Drupal basiert auf Nodes. Jeder Inhalt ist ein Node. Dieser Node hat standardmässig verschiedene Eigenschaften (z.B. Title, body, published usw.). Mit CCK lassen sich diese Eigenschaften beliebig erweitern. Es könnnen neue Felder hinzugefügt werden wodurch ein eigener Node gebaut werden kann.

Daher kommt schnell einmal der Wunsch auf, dass diese Inhalte anders dargestellt werden sollen. Das Theming System von Drupal ist hier sehr flexibel:

  1. Im Theme gibt es die Datei node.tpl.php. Diese enthält alle Informationen, wie der Inhalt eines Nodes angezeigt werden soll und bezieht sich auf jeden Node.
  2. Diesen ganz einfach kopieren und wie folgt umbenennen: node-myType.tpl.php (wobei "myType" eben der Namen des neuen Inhalttypes ist).
  3. Die Datei kann jetzt entsprechend angepasst und umgeändert werden.

Ein paar nützliche Funktionen dazu könnten sein:

Diese ermöglichen es CSS und js Dateien nur für diesen Nodetype einzubinden. Die Funktion drupal_set_title() setzt den Titel der Seite -> wäre auch die Möglichkeit, so den Titel auszublenden.

Natürlich ist CCK nicht notwendig dafür. Es reicht bereits node-blog.tpl.php um alle Blogseiten spezielle zu themen (oder: node-book.tpl.php, node-forum.tpl.php…).

Ausführliche Informationen zu node.tpl.php sind im Handbuch auf Drupal.org zu finden. Dort werden auch zur Verfügung stehende Variablen aufgelistet und zudem gezeigt, wie es auch möglich ist, einen einzelnen Node separat zu themen.