[Resolu] Afficher blocs en fonction du vocabulaire.

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 tout le monde.

J'ai créer quelques blocs listant les articles liés a un certain vocabulaire et je voudrait qu'ils ne s'affichent que sur les pages ou articles liés a ce vocabulaire.
Pour le moment j'ajoute a chaque fois dans la configuration des blocs, les pages sur lesquels ils s'affichent. Mais comme d'autres personnes vont aussi éditer des articles, je voudrais que ces blocs s'affichent automatiquement sur les bonnes pages sans chaque fois devoir le specifier dans la configuration de chaque bloc.
Quelqu'un a une idée de la facon dont je suis sensé faire cela?
Merci
Julien

Version de Drupal : 

Concernant les blocs lies sur un vocabulaire d'un node, AMHA il faut un peu taper ds le code.
Le plus simple generalement est de charger la structure du node via un node_load et ensuite de l'examiner via un print_r.
De la tu peux sortir un code du genre:

<?php
//Choisir l'id de ton vocab
$vid_affiche = 2;
$afficher = FALSE;
//On verifie l'affichage d'un node
if (arg(0) == node && is_numeric(arg(1))) {
 
$node = node_load(arg(1));
  foreach (
$node->taxonomy as $tid) {
   
//Verifier si dans tous les termes un appartient au vid selectionne alors on affiche le bloc
   
if ($tid->vid == $vid_affiche) {
     
$afficher = TRUE;
    }
  }
}
return
$afficher;
?>

Voila tu mets ca ds la configuration de ton bloc dans "Page specific visibility settings" avec l'option PHP et ca devrait marcher.

Salut,

Ta question était de savoir comment afficher un bloc uniquement sur les noeuds rattachés à un certain vocabulaire. Le paramètre à préciser est donc l'id de ce vocabulaire (que tu peux voir dans la barre d'url de ton browser quand tu édites le vocabulaire en question dans l'admin).

Dans son exemple, tostinni a utilisé le vocabulaire portant l'id 2 :

<?php
$vid_affiche
= 2;
?>