Views2 - affichage contextuel au noeud courant

Le but est d'afficher, à l'aide d'une vue dans un bloc, du contenu contextuel en fonction du nœud principal.

Dans la configuration de la vue, dans un argument de type "Taxonomy: Term id", il faut cocher "Provide default argument" dans la section "Action to take if argument is not present:".

Ensuite on choisit "PHP Code" et on insère le code suivant (sans les balises php):

<?php
$vid
= 2;

if (
arg(0) != 'node') return '0';

if (!
is_numeric(arg(1)))  return '0';

$node = node_load(arg(1));

$terms = taxonomy_node_get_terms_by_vocabulary($node, $vid'tid');

return
join('+', array_keys($terms));
?>

Ici, nous voulons récupérer les ids de termes de taxonomie d'un vocabulaire ($vid=1) d'un nœud (taxonomy...).

Finalement une chaîne de caractère est retournée; elle contient les ids séparés par des plus, permettant de faire l'opération OU (mettre ',' à la place de '+' pour l'opération ET).

La partie conditionnel if garantie que la fonction retourne quelque chose: le noeud 5 existe et a utilise le vocabulaire 2.