Affichage d'un bloc en fonction en fonction de la taxonomie

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai un bloc qui contient un menu. Je souhaiterais afficher ce menu uniquement lorsque le node sur lequel l'utilisateur se trouve appartient à un terme de taxonomie donné.

Par exemple
Je clique sur une petite annonce (ed-classified), classée dans vocabulaire petite annonce / term : immo

Si taxonomy-term == immo ou taxonomy-term == auto ou taxonomy-term == divers
=> le menu s'affiche

Sinon
=> le menu ne s'affiche pas

Si quelqu'un a une idée.

D'avance

Merci

Jérôme

Version de Drupal : 

Pour cela tu peux voir avec les fonctions avancees d'affichage de bloc et mettre un peu de PHP dedans, du genre

<?php
 
if (is_numeric(arg(1)) && (arg(0) == 'node')) {
 
$node = node_load(arg(1));
  foreach (
$node->taxonomy as $tid => $term_obj) {
    if (
$tid = 4 or $tid = 5) {
      return
TRUE;
    }
  }
}
?>

En gros jette un oeil dans le contenu de $node->taxonomy

Dans quelles fonctions faut-il mettre ce code??
et quelles sont les fonctions d'affichage de bloc (elle se situent dans block.module mais j'ai un peu de mal avec toutes ces fonctions).

Merci d'avance

Le dernier champs dit "Page specific visibility settings" avec l'option "Show if the following PHP code returns TRUE (PHP-mode, experts only)"
Attention cependant, comme le dit son titre, vaut mieux savoir ce que l'on fait la sinon tu risques de casser ton site ;)