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

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

#

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

#

Merci, c’est exectement ça. J’avais oublié cette possibilité.
Je ne regrette vraiement pas mon choix de drupal
A+

#

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

#

Et en fonction des roles de l’utilisateur connecté ?

si role user = ‘user_simple’
return false
else

Faut que je mettes au code !

A+

#

C’est possible, pour cela je te recommende d’examiner le contenu de la variable global $user.

<?php
global $user;
print_r($user);
?>

Tu y trouveras ton bonheur

#

Effectivement, «drupalement» parlant il y a de quoi trouver son bonheur.

Encore merci

a+

Syndiquer le contenu