Drupal Node und Blocktemplates
Drupal Templates installieren
Drupal Templates erstellen
Drupal Templates verstehen
Drupal Node Templates
Drupal Block Templates
Node Templates sind für das Layout von Drupal nodes verantwortlich. Während page.tpl.php für das Layout der gesamte Seite verantwortlich ist, steuert node.tpl.php nur den Teil der von Drupal Node ausgegebenen Content. Wie hier auf der Abbildung die Blog Posts.
(Die meisten Contenttypen in Drupal werden von einem einzigen Contenttype abgeleitet, der als Node bezeichnet wird. Gleichgültig ob es ein Blogeintrag oder ein Eintrag für die CD Sammlung ist, die darunterliegende Datenstruktur ist die gleiche. Das macht es für Drupal Entwickler sehr einfach den Contenttypen neue Funktionen wie etwa Ratings o. ä. zu verleihen. Nodes enhalten auch eine Reihe von Eigenschaften, das alle anderen Contenttypen erben. Jedes Node kann auf der Frontpage sein, es kann publiziert oder unpubliziert sein. Auch suchbar ist eine Eigenschaft der Nodes.)
nodes.tpl.php sind also nur für den von Nodes produzierten Content verantwortlich. Dabei ist es unerheblich ob es sich um einen Teaserview (mehere Nodes auf einer Seite) oder einen body-view (single-view) handelt. Die $page - Variable in einem node-Template - File zeigt an ob wir uns im teaser-view (TRUE) oder im body view (FALSE) befinden. Das node.tpl.php ist das generische Template mit das Layout aller Nodes gesteuert wird.
Natürlich müssen nicht alle Nodes gleich gestaltet gleiches Layout haben. Ein Node-Template für einen speziellen Node-Type zu gestalten ist sehr einfach. Fügen Sie einfach ein neues Node-File mit der Bezeichnung node-nodetype.tpl.php hinzu. PHPTemplate erkennt das automatisch und nimmt für den gewählten Nodetyp das neue, spezielle Node-Template. Bsp.: Sie wollen für Ihre Blogeinträge ein spezielles Node-Template gestalten, da Ihnen das Standardlayout nicht gefällt. Erstellen Sie einfach ein File node-blog.tpl.php. PHPTemplate erkennt es automatisch und Ihre Blogeinträge haben ein neues Layout. Jeder Inhaltstyp oder Nodetyp (story, forum, ...) den Sie im Backend (Verwalten --> Inhaltstypen) anlegt haben kann ein entsprechendes Nodetemplate haben.
Variablen in Drupal Node Templates
| Variable | Bedeutung |
|---|---|
| $content | Teaser-view (TRUE), Body-view (FALSE) |
| $date | Formatiertes Datum wann der Node erzeugt wurde |
| $links | Links zu einem Node, wie z.b. read more oder add comment |
| $name | Benutzer der den Node anlegte mit Link zu seinem Profil |
| $node | Das ganze Node-Objekt mit allen Eigenschaften. Versuchen Sie es: print_r($node) |
| $node_url | Die permante URI zu diesem Node |
| $page | TRUE wenn die Node als Seite angezeigt wird (body-view), FALSE bei teaser-view |
| $taxonomy | PHP Array mit Taxonomy Term dieses Node |
| $teaser | True wenn Teaser dargestellt werden soll, andernfalls FALSE |
| $terms | Taxonomy Terms dieses Node in HTML |
| $title | Titel dieses Node. In teaser-view mit link zur single-view Darstellung |
| $submitted | "Submitted by" Text |
| $picture | HTML des Benutzerbildes (wenn eingeschaltet) |

