Blöcke in Drupal 7 nur bei bestimmter Taxonomie anzeigen
Mit Drupal 7 hat sich das Taxonomiemodul grundlegend geändert. Die Beispiele aus dem Web für ältere Drupal-Versionen enden schlimmstenfalls in einer komplett leeren Seite. Dann ist Handarbeit in der Datenbank angesagt.
Hier nun ein funktionierendes Beispiel, wie Blöcke in Drupal 7 anhand eines Taxonomiebegriffs des Nodes angezeigt werden können (einzufügen in den Sichbarkeitseinstellungen des jeweiligen Blocks):
1<?php
2if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
3 $node = node_load(arg(1));
4 $items = field_get_items('node', $node, 'field_tags');
5 if (is_array($items))
6 {
7 foreach($items as $term)
8 {
9 if ($term['tid'] == 7)
10 {
11 return TRUE;
12 }
13 }
14 }
15 return FALSE;
16}
17?>
Dabei wird davon ausgegangen, dass das Feld field_tags die Taxonomiebegriffe enthält. Im Beispiel wird der Block nur angezeigt, wenn der Node den Taxononomie-Term 7 enthält.
Genau dieser Code wird hier auf der Webseite eingesetzt, um Blöcke auf der rechten Seite anzuzeigen, wenn der Node den Term 7 (= Secondlife) enthält.