Le guide Inéation des 38 modules indispensables à Drupal 6

Dernière mise à jour : Février 2009.
Version de Drupal : 6.X

L'un des points forts de Drupal c'est le nombre et la qualité de ses modules. Pourtant, devant la multitude des modules disponibles il est difficile de faire le bon choix. C'est pourquoi, pour vous aider dans vos premiers pas, j'ai sélectionné 38 modules indispensables et vous explique pourquoi.

Ils vont vous permettre de :

  • Réduire votre temps de développement
  • Faciliter la construction de votre site
  • Publier du contenu
  • Toucher un public multilingue
  • Gérer des images
  • Gérer des contenus multimédia
  • Géolocaliser le contenu
  • Booster votre recherche
  • Optimiser votre référencement
  • Générer plus de traffic
  • Animer une communauté
  • Eliminer les spams
  • Faire du commerce

Réduire votre temps de développement

Les modules :

Admin menu est certes très simple mais c'est peut-être lui qui vous fera gagner le plus de temps. Il ajoute un menu déroulant sur le bord supérieur de votre écran afin d'accéder sans temps de chargement intermédiaire à n'importe quel écran de configuration. Adoption immédiate garantie !

Devel est destiné au développeurs et autres designers, il vous facilitera la vie lors du développement d'un nouveau site. Il peut ainsi générer des contenus factices (utilisateurs, noeuds, commentaires, catégories...), afficher les requêtes exécutées lors de l'affichage d'une page, et bien d'autres choses encore. L'extension Theme Developper est une aide précieuse pour les thémeurs car elle permet de repérer les fonctions de thèmes et les templates utilisées pour l'affichage. Très utiles pour les substitutions ("overrides").

Backup and migrate est la solution la plus efficace pour sauvegarder votre base de donnée. C'est aussi une solution que j'utilise couramment pour migrer un site du serveur de développement au serveur de production. C'est rapide et efficace.

Faciliter la Construction de votre site

Les modules :

CCK, Views ont montré la voie, puis Panels. Tous ces modules représentent une nouvelle génération d'outils qui accélèrent le développement de sites complexes en permettant de bâtir une bonne partie de la structure d'un site sans programmation (ou presque). Ces outils sont sans doute en grande partie responsable du succès de Drupal.

CCK va vous permettre de créer sans programmation de nouveaux types de contenu structurés (avec des champs spécifiques) adaptés à chaque problématique, de paramétrer le formulaire de saisie et de spécifier quels champs doivent apparaitre lors de l'affichage complet et du résumé. CCK dispose d'un nombre important d'extension qui augmente le type de champs rendu disponibles pour créer vos types de contenus : civilité, date, fichier, image, carte, champs calculés...

Webforms est le meilleur moyen de créer des formulaires sans écrire une ligne de code. Il y souvent une confusion entre CCK et Webform. CCK permet de créer des types de contenus, les données rentrées par l'utilisateurs seront ensuite sauvegardé dans un noeud afin d'être affichés par la suite. Les données recueillies par Webform n'ont pas vocation à créer du contenu sur le site, dans la plupart des cas, elles seront envoyés par email à l'administrateur du site. Idéal pour des formulaires de contact, d'inscription, ...

Views va vous permettre de créer des vues sur mesure pour vos listes de contenu, de les filtrer selon des conditions complexes, de trier, de spécifier quels champs afficher et comment les afficher. La puissance des extensions de views permet de réaliser toutes sorte de vues : listes, tableau, grilles, cartes google map, slideshow javascript, calendriers, etc.

Panels, lui va vous permettre, sans programmation, d'afficher et de mettre en page sur un panel des contenus, des blocs, des vues et d'autres panels dont le contenu est déterminé dynamiquement. Attention : Panels V3 (à ne pas confondre avec la V2) est sur une alpha relativement stable qui devrait passer en béta en Avril. La puissance de ce module réside dans la possibilité d'extraire des relations entre les contenus (auteur, catégorie, hiérarchie) et par exemple, de déterminer l'auteur d'un contenu pour afficher son profil à côté. Enfin il offre des possibilités de mise en page qui accélèrent grandement le développement de grilles de contenu complexes.

Ces modules sont des contributeurs important du succès de Drupal, il sont des accélérateurs de développement et permettent ainsi au développeurs de se concentrer sur les tâches à plus forte valeur ajoutée.

Le junior dans la catégorie : Context. Ce module vous permet de préciser des contextes différents en fonction des contenus affichés. Vous pouvez associer des menus et des blocks différents à chaque contexte. Ce module est ainsi une alternative plus puissante pour l'affichage de ces objets. Utilisé conjointement avec le module Spaces, c'est un moyen redoutable pour créer des éléments fonctionnels (blog, forum) réutilisable d'un site à l'autre.

L'avenir : CCK va être intégré à D7. Pour Views, il plus prudent de parier sur D8.

Publier du contenu

Les modules :

Wysiwyg API est le module à installer si vous souhaitez utiliser un éditeur WYSIWYG pour rentrer le contenu. Il s'agit d'une API qui unifie l'installation des éditeurs comme TinyMCE ou FCKeditor. C'est très flexible, vous pouvez ainsi spécifier un éditeur différent pour chaque format d'entrée.

Workflow permet de créer des processus de validation et de publication très complexes. A chaque étape du processus il est possible de lancer une action (comme l'envoi d'un email).

Toucher un public multilingue

Les modules :

Avec l'arrivée de la version 6, Drupal à fait de grand progrès dans la gestion du multilinguisme. Autre amélioration, le module Views (voir ci dessus) qui prend maintenant en charge (en partie) la localisation. Malheureusement ce n'est pas encore parfait et le développement d'un site vraiment multilingue nécessite un travail important. Heureusement il existe un excellent module pour nous faciliter la tâche.

Internationalization (ou i18n). I18n, fait tout ce que Drupal 6 devrait faire mais ne fait pas en matière de multilinguisme. Ce module, qui est en fait un ensemble de nombreux modules, vous permet de traduire vos contenus, de traduire vos blocs, vos menus et même de définir certaines variables. Indispensable !

Language sections. Une alternative ou un complément à i18n. Il peut convenir à certains de vos projets. Il permet, par l'intermédiaire, d'un filtre de saisie (input filter) d'écrire toutes les traductions au sein d'un même article. Il suffit juste de spécifier la langue du paragraphe. A l'affichage seul les paragraphes dans la langue du visiteur sont visibles. Cela marche pour tous les champs de formulaire où les filtres sont activés, ce qui peut être très utile pour traduire la tête de page du formulaire de contact ou celui d'une vue par exemple.

Parfait ? Non pas tout à fait. Un certain nombre de choses restent difficiles à mettre en place et le paramétrage des menus et des blocs est relativement fastidieux. Enfin, si les variables permettent de traduire des éléments comme le titre du site ceci se fait de manière non intuitive pour le webmaster.

Le futur : une nouvelle avancée devrait être faite avec D7, si c'est le cas on devrait s'approcher d'une solution sans compromis.

Gérer des images

Les modules :

Alors que la gestion des image est primordiale Drupal ne propose aucune solution native et le choix du meilleur module s'avère complexe.

Complexe, tout d'abord parce qu'il y deux concepts qui s'affrontent : soit les images sont gérés comme un champ d'un type contenu soit elles sont considérées comme un noeud à part entière.

Avec Imagefield, qui dans sa version Drupal 6 nécessite l'installation de File field vous allez gérer vos images comme un champs spécifique d'un de vos types de contenu. Il s'agit donc d'un plugin pour CCK (voir ci dessus).

Image et ses extensions vous permettent de gérer vos image comme un contenu à part entière.

Le choix entre les deux concepts va dépendre de l'utilisation que vous souhaitez faire de vos images. Si vous considérez vos images comme des objet à part entière de votre site, alors choisissez le module image. Par contre si vos images ne sont que des illustrations d'un contenu plus important alors imagefield sera plus adapté.

Simple non ? Et bien en fait pas tout à fait puisqu'il est possible de défendre l'opinion inverse ;-). Bref, pour vous faire votre opinion, testez les deux. Pour ma part je suis plus à l'aise avec Imagefield et cie que j'utilise systématiquement...

Imagecache permet de manipuler les images afin de les transformer (taille, effets spéciaux...) avant de les afficher. Ce module est extrêmement utile : ainsi, par exemple, à partir d'une seule et même image vous pouvez générer plusieurs versions de différentes tailles.

Lightbox2 est un moyen élégant d'afficher vos images en utilisant la technologie jquery. Ce module est très flexible, il peut même prendre charge les vidéos. Peut-être trop, à ce moment vous pouvez essayer une des nombreuses alternatives disponibles sur Drupal.org...

Gérer des contenus multimédia

Les modules :

Embedded Media Field, est un excellent moyen pour incorporer une vidéo, une image ou un son venant d'un fournisseur extérieur dans un contenu. Il dépend du module CCK et met un nouveau type de champ à votre disposition. Ce champ est paramètrable pour accepter à peu pres n'importe quelle url ou code html venant d'un fournisseur de contenu multimédia. La liste des fournisseur de contenu est vaste : youtube, bliptv, daily motion, flickr, picasa, ode, podomatic et bien d'autres encore. Comme c'est un champ CCK, il peut ensuite être thèmé à volonté, il y a même une option pour modifier la miniature. Idéal donc pour permettre à vos utilisateur d'ajouter facilement une vidéo youtube sur leurs articles.

Asset, Media Mover et FLV Media Player ne sont pas cités car pas encore disponibles pour D6. Dommage, car utilisé conjointement il permettent d'incorporer des vidéos sur un site et de générer un code html pour vos visiteurs. De quoi créer un youtube like en fait...

[Edit Mai 2009] : finalement Média Mover et cie sont disponibles pour D6. J'intègrerai tout cela dans la prochaine mise à jour de l'article. En attendant je vous conseille la lecture de cet article pour faire du streaming vidéo avec Drupal 6 :

Géolocaliser le contenu

L'association de ces deux modules permet de réaliser de puissantes applications cartographiques.

Location intègre un formulaire d'adresse dans vos contenus (noeuds, user) et va convertir, via un web service, cette adresse en latitude et longitude.

Gmap va se charger de d'afficher sur une carte Google map l'ensemble des contenus géolocalisés. L'ensemble prend une véritable dimension lorsqu'il est associé au module View qui permet de filtrer finement les contenus qui doivent être affichés.

Booster votre recherche

Tagadelic est le meilleurs moyen d'afficher un nuage de tags. En plus, il est compatible avec Views, via le module "Views Tagadelic".

Apache Solr Search Integration permet aussi la recherche par facette et vous permettra d'améliorer largement les performances de la recherche en utilisant le moteur Lucene. Parfait pour les sites "costauds". Attention la configuration du système est complexe. A noter, Acquia a annoncé qu'il lancerai un service "clé en main" pour donner facilement à votre site les fonctionnalités de Lucene.

Optimiser votre référencement

(Nov. 2008 : XML sitemap n'est pas encore disponible pour Drupal 6).

Drupal est naturellement doué pour le référencement. Si vous activez les url descriptives, si vous les optimisez systématiquement avec Path et si vous choisissez un thème digne de ce nom vous aurez un résultat correct. Néenmoins ce n'est pas suffisant, il va vous falloir l'aide d'un certain nombre de modules supplémentaires.

Pathauto, tout d'abord, va automatiquement créer une belle url pour vos articles, url basée sur le titre des contenus. Pratique et plus productif que le module standard path car automatisé.

Métatags, autrefois nommé Nodewords, est le module indispensable pour gérer finement les mots clés et les descriptions de vos pages. Il définit tout d'abord le mots clés que l'on retrouvera dans tout le site, puis il vous permet de paramétrer différemment la page d'accueil et enfin, si vous le souhaitez vous allez pouvoir optimiser chaque page. Obligatoire si le référencement est important pour vous.

Global redirect, vous permettra d'indiquer à Google quelle url indexer. Très utile si vous avez mis en place les "nice url".

XML sitemap permet d'automatiser la création d'une sitemap et son envoi au différents moteurs de recherche.

Générer plus de traffic

  • Comment subscribe est le module indispensable pour garantir un véritable dialogue entre les commentateurs de vos articles. A chaque fois qu'un commentaire est écris par l'un de vos visiteurs le module va envoyer un email aux précédents commentateurs du même article. Bien évidemment le visiteur à la possibilité de désactiver cette fonction. Pour plus de puissance (mais plus de complexité) allez voir le module Subscriptionsqui permet de notifier n'importe quel changement dans un contenu à vos membres.

    SimpleNews est d'après moi le moyen le plus simple d'envoyer une lettre d'information à vos membre ou à vos visiteurs. Les fonctionnalités sont simples mais suffisantes pour un site dont la liste de diffusion reste modeste. Au dela, il manque tout de même une véritable application de gestion des listes ou des templates.

    Animer une communauté

    Si Drupal est reconnu pour sa capacité à construire des réseaux sociaux, c'est en partie grâce a ces modules. Vous allez donner le pouvoir aux membres de votre site : leur permettre de noter le contenu, de créer leurs groupes de travail ou de discussion, de choisir leurs amis, de gagner des points s'ils contribuent et d'afficher un profil détaillé.

    Fivestar, associé à Voting API est la star (!) des modules de notation. Il est flexible, vous laisse le choix des logos, permet de noter selon plusieurs axes et est supporté par view. Pratique pour créer des listes "best of" triées par leur note.

    Organic Group est la clé de voute du système communautaire de Drupal. Il permet aux membres de votre site de se fédérer en groupes, sorte de micro sites plus ou moins indépendants, privés ou non, à entrée libre ou sur invitation. Les membres d'un groupe peuvent alors créer les contenus autorisés par l'administrateur. OG dispose d'un nombre important de modules optionnels qui rajoutent chacun une fonctionnalité inédite. Bref, ce module est un véritable bijou.

    Flag et Flagfriend permettent aux membres de votre site de se faire des amis. Ce sont des moyens simples et efficaces de gérer ces fonctionnalités. A préférer au module Buddylist qui est maintenant dépassé et à Buddylist2 qui n'est pas encore prêt. Pour ceux qui souhaitent mettre en place un système de relation entre utilisateurs plus complexe, je vous conseille d'aller voir Friendlist (en développement).

    Userpointest à ma connaissance le seul système qui permet de récompenser vos meilleurs contributeurs. Ainsi pour chaque contribution, et l'on peut différentier la valeur de chaque nouveau contenu, l'auteur sera récompensé par des points. D'autres modules liés ajoutent des fonctionnalités comme l'attribution de rôle lorsque un nombre de point est atteint.

    L'utilisateur est l'élément central d'une communauté. D'où la nécessité pour les membres de pouvoir détailler leur profil et leurs passions sur leur fiche. Le module standard profile est trop limité pour cela.
    Content Profile, qui succède à Node Profile et à Bio et les améliore, va vous permettre de créer les profils les plus complexes. Il utilise la puissance de CCK pour créer des types de contenus spécifiques qui seront liés à un utilisateur. Comme le profil est noeud, cela permet d'utiliser tous les types de champs CCK pour le formulaire du profil : liste déroulante ou à puce, date, champs texte, photographie, carte google map, vidéo, son... Le module permet en plus de modéliser plusieurs types de profils utilisateurs et de les lier à des rôles. Bref, il n'y a pas vraiment de limite avec node profile...

    Eliminer les spams

    Mollom est un module et un service. Pour fonctionner il faut s'inscrire sur le site de Mollom. Une fois cette étape passé et le module installé, vous bénéficierez d'une protection imparable pour tous vos formulaires (contact, commentaires, contenus...). Lorsque Mollom n'est pas sur d'avoir identifié un spam, il insert dynamiquement un captcha. L'intérêt est que ce captcha n'est pas utilisé systématiquement, le site est donc plus ergonomique. Depuis peu, on peut aussi utiliser uniquement la fonction captcha. Je l'utilise sur ce blog, depuis, je n'ai plus un seul spam qui passe le barrage. Impressionnant.
    [edit] Évidemment cela laissera toujours passer les spam non automatisés utilisés par certains imbéciles (je viens d'en effacer un)... Mais bon il y en a très peu (coût du spam plus élevé).

    Faire du commerce

    Faut-il utiliser Drupal pour un site de e-commerce ? Ou vaut-il mieux partir sur une application spécialisée comme Magento ? La question mérite d'être posée car la réponse n'est pas évidente. En fait tout dépend des fonctionnalités dont votre site aura besoin. S'il s'agit d'un pure application de boutique en ligne alors, un outil spécialisé comme Magento, sera surement plus efficace et votre développement plus productif. Si, par contre, votre site cumule d'autres besoins, comme par exemple des fonctions communautaires avancées pour permettre aux membres de communiquer entre eux, alors Drupal va reprendre l'avantage.

    Ubercart est maintenant clairement le module e-commerce star de Drupal. Il ne dispose pas encore de version définitive pour Drupal 6 mais la version RC est très stable et utilisée en production par de nombreux sites. Ubercart dispose d'une petite communauté dynamique qui vous garantie une évolution constante. Ubercart permet ainsi d'intégrer dans un site Drupal une boutique en ligne qui pourra être complétée par tous les autres modules Drupal et permet de vendre des produits tangibles ou intangibles (numériques). Un bémol, il semble que Ubercart soit un peu fâché avec les sites multilingues.

    Anciens nominés

    Cette catégorique regroupe les modules qui ont fait parti un moment de la liste de 38. Je les ai retirés afin de laisser la place à d'autres, "plus indispensables". Cependant ils restent intéressants, c'est pourquoi j'en garde la trace ici.

    Drush est un outil de productivité qui vous permet d'installer et de mettre à jour vos modules en ne tapant qu'une ligne de commande (depuis votre shell). Cela vous évite ainsi de télécharger les archives des modules depuis drupal.org, de les décompresser sur votre serveur et de les activer via l'interface web de votre site. Bref, installez Drush en premier et vous gagnerez un temps fou par la suite...

    Languages icons. C'est un tout petit module qui permet d'afficher des drapeaux pour sélectionner la langue voulue. Pas vraiment un indispensable mais bon...

    Faceted Search vous permet de créer une recherche par facette. C'est un concept de recherche qui s'apparente à une simple navigation ou le visiteur va filtrer le contenu du site progressivement en sélectionnant des critères. A chaque clic,le résultat de la recherche s'affine. ainsi par exemple on pourrait imagine une recherche par facette pour les modules de ce site. L'intérêt ? La recherche ne renvoit jamais de résultats vides et l'utilisateur n'a pas à remplir de formulaires compliqués.

    e-Commerce est le module le plus ancien, il dispose actuellement d'une version Béta pour Drupal 6. Très puissant et complet, il est même supporté par un livre de chez Packt qui vous permettra de monter en puissance plus rapidement.

    Captcha permet d'insérer... un captcha sur vos formulaire. Un captcha est un test visuel que, normalement, seul un humain peut réussir. A n'utiliser, d'après moi, que si vous ne souhaitez pas souscrire à un service comme Mollom car, si cela est efficace, cela provoque des problèmes d'ergonomie.