Associer un terme de taxonomie à une page créé par views

Catégories:

Bonjour,
Je débute dans Drupal…
Dans mon site, j’associe un terme de taxonomie à chaque page que je crée. Pour cela, j’ai activé la case à cocher «Page» du groupe Type de contenu dans les paramêtres de mon vocabulaire.
J’aimerai aussi pouvoir associer un terme de taxonomie aux pages qui sont créées automatiquement par le module views. Je ne vois pas comment faire. Merci pour votre aide.

#

Bonjour Philippe

Techniquement view ne crée pas de page, il te permet de les lister et d’organiser les informations selon un affichage particulier.

Ainsi tu peux sélectionner les champs que tu souhaites. Pour afficher le champs de taxonomie sur tes vues tu dois créer un nouveau champ de type Taxonomie : Terme.

Julien

Ideia.fr | Blog | Twitter

#

Salut Julien,
Merci pour ta réponse.
En fait quand je parle des pages créé par views, je parle plutôt du type d’affichage de la vue. Il y a par défaut bloc et page. Le problème, c’est que je n’arrive pas à associer à cette page (produite par la vue) un terme de taxonomie comme je le fais pour les autres contenus (dont les pages classiques de DRUPAL).
En d’autres termes, je ne cherche pas à céer une vue basée sur la taxonomie mais plutôt associer un terme de taxonomie au résultat d’une vue sous forme de page.

#

En faite tu veux par exemple qu’en bas de la vue il y ait un lien vers la taxonomie en question ?

Julien

Ideia.fr | Blog | Twitter

#

Non. Je vais essayer d’être plus clair.

J’utilise la taxonomie pour afficher une image différente dans le haut des pages du site. (Peut-être que ca n’est pas très Drupalien comme méthode, mais pour le moment, je n’ai trouvé que cà.)

J’ai fait une petite fonction (voir ci-dessous) que je lance depuis l’override de la page.tpl.php en insérant la commande suivante au bon en droit dans ma page :
<?php print gestion_banniere2() ?>

Ensuite, je n’ai plus qu’a assigner le terme de taxonomie correspondant quand je crée une page ou un article et l’image en haut du site s’affiche comme je le souhaite.
…sauf que pour les pages créées par une view, je n’ai pas la main.

Voilà le code :

function gestion_banniere2() {
   global $language;
 
   // Permet de récupérer la variable $node qui n'est disponible qu'au niveau du noeud
  if ((arg(0) == 'node') && is_numeric(arg(1))) {
    $node = node_load(arg(1));
  }
  
   //Envoie l'image
  $ListeTaxo = $node->taxonomy;
   $InfoTaxo =array();
   
   if (isset($ListeTaxo)) {
       foreach ($ListeTaxo as $value) {
           array_push($InfoTaxo, array($value->tid, $value->name));
     }
     
       switch ($InfoTaxo[0][0]) {
         case 1:
            case 6:
           $Img = 'img_zen.jpg';
           break;
         case 2:
            case 7:
           $Img = 'img_azi.jpg';
           break;
         case 3:
            case 8:
           $Img = 'img_sangha.jpg';
            break;
         case 4:
            case 9:
           $Img = 'img_teaching.jpg';
          break;
         case 5:
            case 10:
          $Img = 'img_membre.jpg';
            break;
         default:
          $Img = 'img_aucune.jpg';
            break;
     }
  } else {
       $Img = 'img_aucune.jpg';
}
     
   //Envoie le titre
  $Titre = $InfoTaxo[0][1];
  if ($Titre == '') {
      if ($language->language == 'fr') {
            $Titre = "Site de l'AZI";
       } else {
           $Titre = "AZI website";
      }
  }
 
   $output = '';
    $output .= '<div id="PHIL_section">'. $Titre .'</div><img src="/sites/all/themes/azi/media/gen/'. $Img .'" alt="" width="800" height="249" />';

return $output;
   
}

Bon. c’est peut-être pas très compréhensible mon problème. Dans ce cas là, c’est pas grave. De toute façon, j’avance sur une autre solution en utilisant ma vue dans un bloc (plutôt que dans une page) que j’associe à une autre type de contenu que j’ai créé pour l’occasion et sur lequel j’ai la main pour assigner un terme de taxonomie.

Pour y voir plus clair, on peut accéder au site qui est en dév via l’url :
http://www.oneplayer.com/azi2/

En tout cas, merci Julien pour tes réponses.

Syndiquer le contenu