Quelques modules Drupal 8 à (re)découvrir

Des outils dans un atelier
Thème

Drupal 8, dès son installation, dispose d'une couverture fonctionnelle beaucoup plus riche que son prédecesseur Drupal 7. Pour ne citer que les plus connus, Drupal 8 embarque désormais un éditeur de texte riche avec CKEditor, Views pour générer toutes les requêtes de vos contenus, Entity reference pour mettre en relation vos contenus, l'internationalisation complètement intégrée au coeur, une mise en cache globale pour les visiteurs anonymes et granulaire pour les utilisateurs authentifiés.

Bien que Drupal 8 soit encore très jeune, 4 mois après la publication de sa première version stable, les modules Drupal 8 deviennent de plus en plus nombreux et le rythme semble encore s'accélérer.  Sans doute grâce à une architecture plus robuste, un investissement conséquent de la communauté Drupal, et une adoption de Drupal 8 beaucoup plus rapide du fait d'un coeur plus complet.

Les modules à installer dès une installation fraiche de Drupal 8 deviennent de ce fait moins nombreux. Découvrons quelque uns de ces modules, déjà disponibles sur Drupal 8, qui peuvent soit enrichir rapidement votre couverture fonctionnelle, soit vous faciliter l'administration de votre site, ou encore qui sont tout simplement indispensables.

Administration et développement

Admin tootlbar : Ce module très simple transforme le menu d'administration par défaut de Drupal en menu déroulant. Pratique et un gain de temps conséquent pour accéder à toutes les facettes de l'administration de votre site.

Devel : Le grand classique en matière de développement. Toujours présent. Ce module met à disposition des fonctions de debug (moins utile si nous utilisons xdebug), permet de générer du contenu en masse, pratique en phase de conception et fournit de nombreuses fonctionnalités très utiles au quotidien (exécution de script PHP, édition de la configuration, etc.).

Configuration development :  Ce module permet d'exporter très finement une partie de la configuration d'un site drupal 8 au sein d'un module, dans le but de packager des fonctionnalités, voire d'automatiser l'export et/ou l'import de certaines configurations (à utiliser avec précaution). Ce module se rapproche assez de Features, qui fournit quand à lui une interface graphique pour exporter certaines configurations, mais se destine principalement à un public de développeurs souhaitant maîtriser très finement les configurations exportées et la façon dont celles-ci sont packagées dans leur module de destination. 

Migrate UI : ce module fournit une interface utilisateur pour utiliser les modules de migration vers Drupal 8 intégrés au coeur. En quelques clics vous pouvez configurer la source des données à migrer, depuis un site drupal 6 ou 7, et procéder à la migration des contenus et configrations supportés.

Masquerade : si vous devez implémenter de nombreux droits d'accès sur des profils différents tout autant nombreux, ce module est un must have. Il vous permettra de basculer d'un utilisateur à un autre en 1 clic, et vérifier ainsi la bonne application des droits.

Conception

Display Suite : ce module, disponible sur Drupal 8 dès sa publication, permet de prendre le contrôle total du rendu des entités depuis le backoffice, depuis la mise en page générale du contenu jusqu'au rendu très précis d'un de ces champs. Il offre également quelques extras qui parfois peuvent être appréciables, comme la possibilité par exemple d'exposer en quelques clics le champ d'un contenu au sein d'un bloc.

Panels & Co : En version bêta depuis quelques semaines, les concepteurs de site adeptes de la philosophie Panels peuvent désormais s'y donner à coeur joie. Panelizer, permettant d'exposer le contenu des entités à Panels, est également disponible.

Field as block : Nous pouvons avoir parfois des besoins assez simples, mais non triviaux, comme par exemple exposer le champ d'un entité au sein d'un block. Panels ou Display suite peuvent être une solution pour répondre à ce besoin, mais sont des solutions qui font bien plus et peuvent paraître surdimensionnées pour ce type de besoin d'autant plus qu'utiliser un de ces 2 modules a des implications non négligeables sur tout le système de theming de Drupal. Field as block permet donc d'exposer le champ d'une entité au sein d'un bloc et ainsi l'afficher où bon nous semble dans nos pages, et vous permet à l'occasion, si vous le souhaitez, de conserver votre theming au sein de votre thème et de ses templates Twig.

Group : ce module est une alternative au standard de facto Organic Group pour implémenter des groupes au sein d'un même site, permettant de gérer à la fois les contenus et les utilisateurs de façon différenciée au sein de chaque groupe. Disponible en version alpha sur Drupal 8 depuis quelques jours, Group est une option très sérieuse à envisager pour tout site qui souhaite mettre en place en son sein des communautés d'utilisateur.

Contact storage : ce module complète le module contact du coeur en permettant d'enregistrer en base de données les soumissions des formulaires réalisés avec Contact. Formulaires qui peuvent être des formulaires de contact ou...tout autre chose. Bref une alternative à Webform (en cours de migration) qui pourra répondre facilement à 80% des besoins couverts par Webform.

RNG events and registration : ce récent module disponible pour Drupal 8 permet de gérer des événements et tout le processus d'inscription à ces derniers. C'est une alternative à Entity registration (voire tout simplement un fork portée sur Drupal 8) qui, sur Drupal 7, offrait ces fonctionnalités. Créer un événement et permettre à vos utilisateurs de s'y inscrire, ou d'inscrire d'autres utilisateurs, devient un jeu d'enfant. RNG permet également de gérer les inscriptions aux événements, d'envoyer des messages aux inscrits, etc. A noter que le mainteneur de ce module n'utilise pas drupal.org (les issue queue) pour maintenir le module, et induit un risque non négligeable d'une faible adoption et donc un support moindre de la communauté Drupal. Un nouveau module dans le domaine de la gestion des événements à découvrir et à évaluer.

Workflow : permettant de mettre en place de muliples processus sur les entités de Drupal 8, ce module est déjà disponible en version bêta. Pour (re)decouvrir ce module, vous pouvez consulter ce billet Maîtriser son processus de publication avec Drupal. A noter que Workbench moderation, une autre solution majeure, est lui aussi déjà disponible our Drupal 8.

Interface utilisateur et contenus

Linkit : ce module fournit dans l'éditeur de texte un bouton vous permettant d'insérer un lien vers un contenu existant sans avoir à connaître son chemin. Il propose pour cela un champ de recherche par autocomplétion et supporte tout type d'entité. Les contenus remontés dans le champ de recherche sont configurables à volonté. On peut filtrer les contenus qui pourront être proposés mais aussi on peut personnaliser la façon dont les propositions de contenu existant sont affichées (titre, photo, + titre, etc.). Un must have.

D8 Editor advanced link : ce module enrichit la fenêtre modale d'insertion de lien dans l'éditeur de texte en permettant de renseigner les balises classiques d'un lien (title, class, id, rel, target). Très pratique pour qui ne veut / peut pas éditer les sources du corps de texte pour ajouter ces balises à main.

IMCE : ce très grand classique permet aux éditeurs de contenus non seulement d'insérer des images ou fichiers depuis l'éditeur de texte, mais propose également toute une interface de gestion des ressources. Les utilisateurs peuvent disposer de dossiers personnels, avec ou sans quota, pour y téléverser leurs images, ou encore de répertoires partagés avec une gestion de droits sur ceux-ci, ils diposent également d'outils intégrés pour effectuer des opérations de manipulation sur des images (taille, génération de vignettes, recadrage, etc.)

Paragraphs :  plutôt récent, paragraphs est une alternative très sérieuse au très renommé Field Collection. Mais il est aussi bien plus que cela. Il permet d'offrir aux éditeurs de contenus la possibilité de concevoir des pages de contenu complexes, sur la base de données structurées. L'utilisateur n'a donc à se soucier que de son contenu, et uniquement de son contenu, et paragraphs le met en forme sous les formes les plus variées (titre, citation, image + texte, diaporama, accordéon, etc.). Les possibilités sont infinies.

Double field : ce petit module peut être une alternative aux poids lourds que sont Paragraphs ou Field collection s'il s'agit de répondre à un besoin simple de pouvoir associer 2 champs (texte, liste déroulante, case à cocher) ensemble, pour réaliser par exemple une FAQ (question / réponse) ou encore associer à une sélection de réseaux sociaux son profil. Avec l'avantage de présenter une ergonomie moins envahissante que d'autres solutions.

Simple social icons : partagez simplement sur les réseaux sociaux vos contenus avec ce module qui privilégie une intégration non intrusive (via des snippets) pouvant dégrader les performances de votre sites.

CKEditor video detector : ce module intégre le plugin CKEditor videodetector et permet d'intégrer une vidéo (dailymotion, youtube ou vimeo) dans le corps d'un texte en y insérant son url. Simple et efficace.

Field image style : ce module permet aux éditeurs de contenu de sélectionner le style qui sera utilisé pour afficher une image. Ainsi au lieu de configurer un style d'image unique pour un champ de votre type de contenu, les utililsateurs peuvent choisir librement sous quel format afficher les images, ceci de façon indépendante pour chaque contenu. Couplé à Paragraphs, ce module donne une grande liberté pour permettre aux utilisateurs de publier des contenus riches, personnalisés avec différentes images au format différent, tout en disposant de données structurées.

Performance

BigPipe : ce module sera intégré au coeur de Drupal 8.1. Big Pipe n'améliore pas les performances de Drupal 8. Il améliore la performance perçue par l'utilisateur, ce qui au final revient au même pour le visiteur, qui peut commencer à interagir avec la page dès ses premiers éléments rendus, et non devoir attendre le rendu de la page dans sa globalité.

RefreshLess : un autre module de Wim Leers, créateur des modules BigPipe et Dynamic page cache. RefreshLess permet de ne charger, lors d'un changement de page, que les parties qui changent entre les 2 pages. Une technique qui permet de proposer à vos visiteurs une très nette amélioration de l'expérience utilisateur avec une navigation quasi instantanée entre les pages de votre site Drupal 8. Et ceci, comme pour BigPipe, sans aucune configuration.

AMP : ce module, et tout son écosystème propre, permet de mettre en oeuvre les spécifications du projet Accelerated Mobile Pages, conduit par Google, sur votre site Drupal 8. De quoi booster réellement l'affichage de votre site sur tout terminal mobile. Cet excellent billet vous décrit comment installer et configurer AMP sur Drupal 8.

Views custom cache tags : ce module permet de cibler plus précisément l'invalidation du cache des vues présentes sur votre site. Par défaut, lors de l'ajout, modification ou suppression d'un contenu, le cache de toutes les vues listant des types de contenu est invalidé. Avec ce module, vous pouvez cibler précisément quelles vues verront leur cache invalidé en fonction du type de contenu, ou de tout autre attribut. Le système d'invalidation nécessite à ce jour la création d'un petit module personnalisé, mais devrait bientôt être intégré dans le module lui-même. A noter que le mainteneur du module est Berdir de MD Systems. Nous pouvons l'utiliser les yeux fermés donc.

Anti-Spam

Tarpit : le concept de ce module est un traitement préventif contre les spams, en proposant certaines pages alléchantes, mais intéressant uniquement les robots indélicats, et dans lesquelles ces derniers vont finir par s'engluer. Et comme touche finale, vous pourrez bannir les IPs de ces robots pour les empêcher de revenir sur votre site. A la fois une protection contre les spammeurs, et un soulagement aussi pour votre serveur qui n'aura plus à subir leurs tentatives malveillantes.

Honeypot : un must have pour protéger vos formulaires des robots spammeur. Basé sur un concept très simple, ce module permet de vous protéger des spams sans devoir proposer des captcha ou autres joyeusetés qui font le bonheur de vos visiteurs sur tous vos formulaires. Bien que très efficace, certains robots savent désormais contourner ces techniques et pour une défense imparable vous pouvez le coupler à Mollom.

Mollom : ce module permet de coupler vos formulaires avec le service fourni par mollom.com (créé par Dries Buytaert), qui par une analyse textuelle, comportemental, et de par sa base de connaissance, est en mesure de bloquer tous les spammeurs indélicats. En dernier recours, en cas de doute sur la nature d'une soumission d'un formulaire, ce module peut proposer une captcha au visiteur. Couplé à honey Pot, votre site est garanti 100% sans spams. 

Référencement naturel

Redirect : ce module majeur permet de gérer les redirections en cas de modifications de chemin des contenus, et vous assure de ne jamais présenter d'erreur 404 (page non trouvée) tout au long de la vie de votre site. Il permet également aussi de gérer bien entendu les possibles erreurs 404 en cas de migration de votre site vers Drupal 8. Bien qu'encore en développement (sur github), la dernière version est déjà tout à fait opérationnelle. A noter qua la version Drupal 8 intègre également les fonctionnalités de Global Redirect. Bref un seul module pour gérer les différents cas de redirection possibles. Nous en avions rêvé. Ils l'ont fait. 

Pathauto : module qu'on ne présente plus. Un incontournable pour qui veut générer des urls propres selon des motifs prédéfnis. En version alpha, il est déjà tout à fait exploitable.

Metatag : encore un module incontournable en matière de SEO. Gérer les balises méta sur toutes vos entités Drupal 8 devient un jeu d'enfant. Vous pouvez les configurer de façon globale, depuis l'interface de configuration général de Metatag, ou encore personnaliser les balises méta par type de contenu, en leur associant un champ Metatag. en pouvant bien sûr, si nécessaire, personnaliser contenu par contenu ces balises. Une référence, déjà au rendez-vous pour Drupal 8.

Piwik Web Analytics : connectez votre site drupal 8 avec votre propre plateforme de suivi statistique de la fréquentation de votre site basée sur Piwik, l'alternative open source à Google Analytics.

Simple XML sitemap : intialement se voulant une alternative simple, et disponible pour Drupal 8, au vénérable module XML sitemap en cours de migration, ce module s'est très vite enrichi en fonctionnalités et permet de générer des fichiers sitemap.xml qui répondront à 90% des besoins. Ce module supporte la plupart des entités de Drupal 8, et permet de gérer également l'inclusion de chemins personnalisés dans le site map.

Sur les thèmes

Au niveau du thème quelques frameworks de base sont déjà disponibles : Bootstrap en version bêta depuis plusieurs mois constitue un excellent choix si on souhaite construire un thème sur cette base. Omega dispose d'une version alpha, et enfin nous disposons aussi d'une base pour Zurb fundation.

Bien que ce ne soit pas le point fort de Drupal, de nombreux thèmes, prêt à l'emploi, commencent également à être disponibles. Pour n'en citer que quelques uns : Bootstrap business, ou encore NewsPlus Lite.

Une évolution rapide de l'écosystème contribué

L'espace des modules contribués de Drupal 8 évolue vite.

Déjà, quelques mois après la sortie de Drupal 8, de nombreux modules majeurs disposent d'une version fonctionnelle. Quand ce ne sont pas de nouveaux modules qui font leur apparition.

Ces quelques modules, que nous avons pu voir, nous permettent de disposer déjà de fondations solides en matière de SEO, d'enrichir l'expérience utilisateur de façon significative, et mettre en place déjà des processus métier particuliers, selon les besoins ou les projets.

Avec une version alpha3 publiée début mars, la suite Drupal commerce se rapproche doucement de sa première version stable pour fournir à Drupal 8 son volet e-commerce tant attendu.

Et vous, vous avez découvert un nouveau module intéressant ?

 

Ajouter un commentaire