Snippet PHP pour afficher un bloc en fonction de la taxonomy
Qu'est-ce qu'un snippet ?
C'est un petit bout de code ou de script que l'on insère dans une zone et qui pourra être utilisé par un programme (ici par Drupal). Le but sera de réaliser une tâche, un calcul, etc. Les possibilités sont très larges.
Dans quelle situation aura-t-on besoin de ce snippet ?
Imaginons que vous avez un bloc (un menu, une image, un texte, une view, etc.) mais que vous voulez qu'il apparaissent seulement sur les pages avec un terme de taxonomy bien précis.
Par exemple, considérons le terme de taxonomy "rouge" qui fait partie d'un vocabulaire "couleur". Je veux que mon bloc apparaisse uniquement sur les pages dont la taxonomy a pour valeur "rouge". Le snippet que je vais vous montrer servira à faire ce genre de choses ! :)
Où insérer ce snippet ?
Il vous faut aller dans la configuration de votre bloc: Construction du site -> Blocs. Vous choisissez le bloc qui vous intéresse et cliquez sur configurer.
Dans la partie "paramètres de visibilité spécifiques à la page", cochez la case "fficher si le code PHP suivant retourne TRUE (mode PHP, experts seulement)". Ensuite, vous pouvez coller votre snippet PHP dans la zone de texte juste en-dessous.
Le snippet:
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load($nid);
foreach ($node->taxonomy as $term) {
if ($term->name == 'rouge') {
return TRUE;
}
}
}
return FALSE;
?>