Catégories:
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
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

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
tostinni
1268
Merci, c’est exectement ça. J’avais oublié cette possibilité.
Je ne regrette vraiement pas mon choix de drupal
A+
jayjay1977
71
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
elodie30
23
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 ;)
tostinni
1268
Et en fonction des roles de l’utilisateur connecté ?
si role user = ‘user_simple’
return false
else
Faut que je mettes au code !
A+
jayjay1977
71
C’est possible, pour cela je te recommende d’examiner le contenu de la variable global $user.
<?phpglobal $user;
print_r($user);
?>
Tu y trouveras ton bonheur
tostinni
1268
Effectivement, «drupalement» parlant il y a de quoi trouver son bonheur.
Encore merci
a+
jayjay1977
71