Springe zum Inhalt

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):

<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
    $node = node_load(arg(1));
	$items = field_get_items('node', $node, 'field_tags');
	if (is_array($items))
	{
		foreach($items as $term)
		{
			if ($term['tid'] == 7)
			{
				return TRUE;
			}
		}
	}
	return FALSE;
}
?>

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.

Beispiel der Ausgabe einer MySQL-Tabelle mit den Drupal-Formatierungsfunktionen:

<?php
  $result = db_query("SELECT * FROM {my_table}");
  $output = '';
  $rows = array();
  $header = array('id','Domain','Module');
  $rows = array();
  $i = 0;
  while($row = db_fetch_object($result)){
    $data = array();
    $data[] = $row->sid;
    $data[] = $row->domain;
    $data[] = $row->module;
    $rows[] = $data;
    $i++;
  }
  $output .= theme('table', $header,$rows);
  echo $output;
?>

Zur Anzeige ist einfach der obige Code in eine neue Drupal-Seite einzufügen und als Eingabeformat PHP code auszuwählen. Aber Vorsicht! Der PHP-Code sollte syntaktisch korrekt sein und man sollte wissen, wie man fehlerhaften Code per Hand wieder aus der Drupal-Datenbank bekommt.