Guide Drupal 6 - Épisode 3 : construire les contenus avec Drupal

Tout d'abord, il convient de dire un mot de la notion de noeud ou node. Dans l'univers Drupal, n'importe quelle unité de contenu est un noeud. Un noeud est constitué au minimum d'un titre et d'un corps de texte, auquel on peut ajouter quantité d'autres champs, par exemple un champ "image", un champ "lien", un champ "adresse", etc.Toute la puissance de Drupal réside dans la possibilité extraordinaire et unique de définir librement un type de contenus en spécifiant librement les champs par lesquels on veut le définir. On peut par exemple définir un type de contenu que l'on va nommer "Événement" et qui sera défini par un champ nom de l'événement (titre), description de l'événement (corps de texte), logo de l'événement (image), site web de l'événement (champ Lien), date de début et date de fin de l'événement.

Cela se fait grâce au module CCK (pour Content Construction Kit), l'un des modules fondamentaux de la planète Drupal, qui sera d'ailleurs intégré au noyau de Drupal dans la version 7. Ce module permet donc de construire des types de contenus personnalisés en offrant la possibilité de contrôler quels champs sont proposés à l'utilisateur dès que celui-ci publie un contenu. Un champ est alors un élément de contenu au sein d'un noeud, tandis qu'un noeud est une collection de champs. Autrement dit, avec Drupal, on peut inventer de toutes pièces son modèle éditorial. Pour bien comprendre ce que cela signifie (car c'est énorme), faisons une petite comparaison avec d'autres CMS Open Source bien connus. Dans WordPress, il n'y a que 2 types de contenus : article et page ; on ne peut pas les personnaliser et encore moins en ajouter. Pareil avec Joomla ou SPIP, qui propose quant à lui le type article et le type brève. Et bien avec Drupal, il existe un nombre infini de types de contenus : ceux dont vous avez besoin et que vous allez créer vous-même. Vous mesurez ? Attention, les utilisateurs et les commentaires ne sont pas des noeuds. Un noeud désigne uniquement du contenu. Selon les modules que vous avez activés, les types de contenu de base livrés avec Drupal sont les types "article", "page", "billet de blog" ou encore "forum".

Créer et personnaliser les types de contenu: CCK

Pour administrer les types de contenus, il faut aller dans Gestion du contenu > Types de contenu. Là, on définit et on nomme comme on veut les types de contenu du site, en leur attribuant les options voulues ; par exemple, il peut être très important de cocher l'option "créer une révision" afin d'avoir un archivage de toutes les versions d'un même article ou contenu (pas de perte de données) : on peut en plus laisser un "message de journal" qui permet d'indiquer aux autres contributeurs la nature des modifications qu'on a effectuées (l'ancienne version du contenu est conservée). Notez cependant que, pour avoir accès aux révisions et faire pas mal d'autres choses, il faut disposer, au niveau des droits d'accès, du droit "administrer les noeuds" et "voir les révisions" (j'en reparlerai dans l'article consacré aux droits d'accès). Pour créer vos propres types de contenu, allez dans Gestion du contenu > Types de contenu > ajouter / champs. C'est là que tout se passe : création d'un nouveau type de contenu entièrement personnalisé, ajout de nouveaux champs entièrement personnalisés, paramétrage détaillé des champs (valeurs autorisées, nombre de caractères maximum, poids maximal des fichiers pour un champ de type "fichier", etc.), réglage de l'affichage des champs (exclure de l'affichage, etc.)... C'est incroyablement complet. La page Gestion du contenu > Types de contenu > exporter / importer sert surtout à dupliquer des champs pour aller plus vite : on exporter un type de contenu existant (par exemple le type article) et on l'importe dans un nouveau type auquel on ajoute encore d'autres champs. Voilà pour les bases de CCK. Je n'en dis pas plus car CCK est un sujet à lui tout seul et il y a d'excellents tutoriels dédiés pour mieux le comprendre, comme le tuto vidéo d'Ineation.

Si CCK et les modules par défaut ne suffisent pas -- ce qui est vraiment rare ! -- à satisfaire vos besoins éditoriaux, il faut aller sur drupal.org > modules et sélectionner la catégorie "content" : là on trouve plusieurs centaines de modules permettant de répondre à tous les types de besoins. Parmi les modules livrés avec le noyau de Drupal, il y a justement deux modules un peu spécifiques qui permettent de faire des choses très intéressantes.

Le module Aggregator (Agrégateur de flux)

Une petite merveille, qui me rappelle les boucles de syndication de SPIP sans leurs défauts et leurs inconvénients...  Ce module doit être activé dans Construction du site > Modules puis paramétré ensuite dans Gestion du contenu > Agrégateur de flux. Comme vous l'avez deviné, ce module permet de classer (ou non) les flux par catégories, de choisir la fréquence de mise à jour (de 15 mn à 4 semaines). On peut même créer un flux RSS présentant le résultat de l'agrégation de plusieurs flux... Tout cela, sans une ligne de code, évidemment, nous sommes dans Drupal. Attention, pour déclencher la première importation des flux, il faut lancer le cron ou bien cliquer sur "mettre à jour les éléments". Enfin, comme avec tous les modules, pour qu'un utilisateur voit les flux RSS de l'agrégateur, il faut lui en donner le droit d'accès... Si on ne catégorise pas les flux, Drupal les mixe en les affichant selon la date des entrées RSS, un vrai bonheur. Ensuite, on peut afficher dans un bloc n'importe quel flux en particulier ou catégorie de flux, en choisissant pour quel type d'utilisateur, sur certaines pages éventuellement, avec un nombre d'entrées librement choisi et modifiable, et j'en passe. Toujours sans une ligne de code, on est dans Drupal. Et pour couronner le tout, dans la page "Paramètres", on peut régler plein de choses (images acceptées ou non dans les flux, HTML accepté...).

Le module Book (livre)

Ce module permet d'organiser une série de contenus comme un livre, c'est-à-dire un ensemble homogène dans lequel chaque contenu est relié aux autres de manière hiérarchique, avec des liens de navigation. Un livre peut être constitué de n'importe quel type de contenu (billet de blog, sondage, etc.) grâce aux liens de navigation qui permettent de les relier ensemble. Pour créer un nouveau livre, il faut tout simplement créer une nouvelle "page de livre" (book page) et, dans "structure du livre", choisir "créer un nouveau livre", ce qui va lui donner le statut de préface (niveau supérieur), c'est-à-dire en faire le point de départ (ou la première page) du nouveau livre. Vous comprendrez mieux en essayant.

Étiqueter et classer les contenus (taxonomie)

La taxonomie, science de la classification, désigne au sein de Drupal une méthode d'organisation des contenus par le biais de relations établies entre des termes. Un "terme" est un mot ou descripteur (tag ou étiquette) permettant de décrire un contenu. On appelle alors "vocabulaire" un groupe de termes se rapportant à un même thème (c'est comme un champ lexical). La taxonomie peut être définie de manière hiérarchique, en définissant des termes, qui ont leurs sous-termes, et ainsi de suite, et cela peut servir à une foule de choses pour organiser et présenter les contenus. Par exemple, le module Forum est fondé sur une taxonomie qui hiérarchise les conteneurs et leurs sujets de discussion. La force de Drupal est de permettre de créer une taxonomie complètement libre. La taxonomie peut également être définie de manière horizontale comme un système de liens entre pages connexes (système de tags), permettant de faire un thésaurus (comme un système de mots-clef dans SPIP). Pour créer une taxonomie, il faut avoir activé le module Taxonomy (livré avec le noyau Drupal). Ensuite, il faut aller dans Gestion du contenu > Taxonomie : tout commence par la création d'un vocabulaire. Ensuite, il faut "ajouter des termes" au sein du vocabulaire. Dans "Options avancées", on peut ajouter un synonyme ou terme connexe ; l'option "parents" permet de définir une structure hiérarchique ; attention, il faut avoir bien défini, dans le vocabulaire, les types de contenu avec lesquels on veut s'en servir, sinon à l'étape suivante on n'aura pas la possibilité d'associer le contenu au vocabulaire. Après quoi, il suffit de créer n'importe quel contenu et de l'associer, au sein du vocabulaire créé, au terme voulu comme avec des tags. Dans Gestion du contenu > Taxonomie > lister les termes, on peut définir la hiérarchie taxonomique par glissés-déposés verticaux ou horizontaux (décalage vers la droite qui crée un niveau de profondeur). Trop simple. C'est ce qu'on appelle une hiérarchie simple.

Mais attention, on peut faire encore mieux et créer des hiérarchies multiples, i.e. dans lesquelles un même terme possède plusieurs parents. Pour cela, il faut aller dans les "Options avancées" du terme à multiplier et, dans "Parents", avec la touche Ctrl, sélectionner tous ses parents souhaités. Dans ce cas, le glisser-déposer ne fonctionnera plus, il faudra passer par les options avancées pour chaque terme descripteur. On peut également avoir besoin d'associer un contenu à plusieurs termes. Pour cela, il faut revenir dans les "paramètres" du vocabulaire défini (Gestion du contenu > Taxonomie > modifier le vocabulaire) et cocher l'option "choix multiples". On peut aussi forcer le choix d'un vocabulaire lors de la création d'un contenu afin qu'aucun contenu ne soit pas rangé. Pour créer un système de tags ouvert, c'est le même principe que la taxonomie ci-dessus, sauf qu'il est proposé ici, dans les paramètres du vocabulaire, de cocher l'option "étiquettes" qui va permettre à l'utilisateur, non pas de choisir un terme parmi ceux créés, mais de créer les siens, mais tout en subtilité puisque, pour éviter la redondance, Drupal va lui proposer dès qu'il va commencer à saisir du texte les termes existants afin de l'encourager à choisir parmi l'existant. Ce qu'il faut retenir ici, c'est que la taxonomie (termes et vocabulaires) permet de classer le contenu de manière catégorielle (étiquettes), alors que c'est le système de livres (book nodes) qui permet de structurer le contenu de manière hiérarchique.

Créer des affichages personnalisés de vos contenus : Views

Le module Views est, avec CCK, l'autre module fondamental et exceptionnel de l'univer Drupal. Il permet, quant à lui, de modifier et personnaliser la façon dont Drupal affiche les contenus. Il est fait pour très bien fonctionner avec CCK car CCK informe le module Views des champs qu'il propose. En somme, en combinant ces deux modules, on peut créer des contenus personnalisés dont on peut ensuite maîtriser l'affichage de manière exceptionnellement précise. Bien sûr, dit comme ça, ça a l'air assez banal. Mais ce que permet de faire Views, ce n'est rien moins que de faire des requêtes dans la base de données pour afficher vos contenus exactement comme vous voulez, avec tous les filtres, champs, critères et arguments que vous voulez, MAIS ATTENTION, tenez-vous bien, tout cela en mode graphique, sans toucher une seule ligne de code. Nous sommes dans Drupal, ne l'oublions pas. C'est un peu comme le Loop de WordPress ou le système des boucles de SPIP, lequel était déjà quelque chose d'exceptionnellement souple, sauf que là, ça frise la folie : on n'a pas besoin d'écrire une seule ligne de code. Ce ne sont que des options (nombreuses et complexes, du coup) à cocher et combiner. Plus vous êtes malin avec Views, plus vous pouvez lui faire faire des choses incroyables. Combiné au système des blocs intégré à Drupal, Views vous offre un système de construction et de personnalisation des pages de votre site sans égal. À titre d'exemples simples, on peut créer en 2 minutes avec Views un bloc permettant d'afficher « les derniers articles », « les derniers inscrits » ou, plus compliqué « 12 commentaires au hasard parmi ceux qui ne sont pas validés et qui sont associés à des contenus de type X de l’auteur Y » ; ou encore afficher la page d'accueil de manière différente, présenter des pages générées par Taxonomy, proposer une vue des messages non lus sur le forum, offrir une archive mensuelle et l'afficher dans un bloc, ou encore afficher des contenus sur une carte Google Map avec le module Gmap... Une vraie folie...

Commentaires

Though the Drupal is one of the difficult platform to be used, I think if you use it in the right way. You can work without encountering any issues. You get to learn the tricks and tips of it from the online webinars available in the site.
http://www.businesswebdevs.com

Ajouter un commentaire