Spécifier pour Drupal : taxonomies

le 17 Mars 2014, par Stéphane

Exemple de vocabulaire Drupal - Breek

Drupal repose essentiellement sur les taxonomies pour classer ses contenus. Les taxonomies sont aussi utilisées pour toutes sortes d'autres besoins comme, par exemple, gérer les accès aux contenus et services.

Spécifier un vocabulaire ne pose pas de difficulté en tant que tel. Mais bien traduire le besoin fonctionnel dans les bonnes taxonomies demande de l'expérience et pas mal d'essais / erreurs.

C'est encore plus stratégique dans le cas des sites catalogue ou marchand mixant marché / langue. Dans ce cas, la manière d'aborder la traduction (ou pas) des vocabulaires peut vite s'avérer un sacré casse-tête. Le sujet des sites internationaux sera traité dans un prochain article.

Pour toutes ces raisons, les taxonomies doivent être au cœur de vos spécifications.

Et, comme toujours, spécifier avec une instance Drupal sous la main ne peut pas faire de mal.

Taxonomie, vocabulaire, terme

Commençons par un peu de jargon Drupal :

  • Taxonomies : ensemble de vocabulaires,
  • Vocabulaire : ensemble de termes (ce que l'on appel à tort une taxo),
  • Terme : un élément d'un vocabulaire.

En pratique la hiérarchie est donc la suivante :

Taxonomies

  • Vocabulaire 1 ("Rubriques" par exemple)
    • Terme 1
    • Terme 2
    • ...
  • Vocabulaire 2 ("Régions" par exemple)
    • Terme 1
    • Terme 2
    • ...
  • ...

Ce qui donne :

  • Rubriques
    • Technologie
    • International
    • ...
  • Régions
    • Alsace
    • Normandie
    • ...
  • ...

Les différents types de vocabulaire

Pour simplifier, avec Drupal, on distingue 3 types de vocabulaire :

  • Ouvert : le contributeur choisi ses termes parmi une liste mais peut aussi en ajouter s'il le souhaite. En générale, ce type de vocabulaire est non hiérarchique.
  • Fermé : le contributeur choisi ses termes parmi une liste fermée.
  • Hiérarchique : les termes peuvent être parent et/ou enfant d'autres termes.

Lors du paramétrage, Drupal ne propose pas une liste déroulante avec les 3 types de vocabulaire. C'est une combinaison de choix qui abouti à la création de vocabulaire ayant l'un des comportements décrits.

C'est ce que nous allons voir maintenant.

Spécifier

Le modèle

Exemple de spécification d'un vocabulaire - Breek

Description

Il est toujours utile de décrire, en quelques phrases, le rôle et les interactions d'un vocabulaire avec les autres entités Drupal. Cela aidera les contributeurs au quotidien et vous permettra de vous rappeler, 2 ans après le lancement, pourquoi tel ou tel vocabulaire a été créé.

Vocabulary settings

C'est le cœur de la spécification. Le but est de décrire le vocabulaire le plus précisément possible. En combinant plusieurs paramètres, on aboutit à l'un des 3 types de vocabulaire décrits précédement.

  • Machine name : mêmes contraintes que pour le nom machine d'un champ ;
  • Description : préciser si le champ standard "description" est utilisé ou pas ;
  • Multilingual options : l'une des questions fondamentales dans le cadre de projets multilingues / multimarchés (ce sujet sera traité dans un prochain article) ;
  • Hierarchical : préciser si ce vocabulaire est hiérarchique ou pas. Si oui sur combien de niveau ;
  • Values : donner un exemple est toujours utile pour aider les autres acteurs du projet à s'approprier les specs ;
  • Used in content type : créer une cross-reference vers le(s) type(s) de contenu utilisant ce vocabulaire ;
  • Used in field collection : créer une cross-reference vers le(s) field collection(s) utilisant ce vocabulaire ;
  • Used in vocabulary : créer une cross-reference vers le(s) vocabulaire(s) utilisant ce vocabulaire ;
  • Used in asset : créer une cross-reference vers le(s) asset(s) utilisant ce vocabulaire.

Fields

Un vocabulaire est une entité. A ce titre, il peut recevoir autant de champs que nécessaire et dispose de view modes. Pour plus de pécisions sur les types de champs, reportez vous à l'article Spécifier pour Drupal : content types / assets.

Ressources

 A qui s'adresse cet article ?
  • AMOA
  • Consultant AMOA
  • Expert Drupal
  • Chef de projet Drupal
  • Développeur Drupal

comments powered by Disqus