Fil d'Ariane
Les nouveautés de Drupal 8.1.0
Mieux vaut tard que jamais. Avec le nouveau modèle de numérotation des versions de Drupal est apparue la possibilité d'ajouter des fonctionnalités pendant la vie d'une version majeure. Alors que nous fêtons le premier anniversaire de Drupal 6 et que Drupal 8.1 a déjà plus de 6 mois, il est plus que temps de faire le point sur les nouveautés que cette version a apporté.
Mieux vaut tard que jamais. Avec le nouveau modèle de numérotation des versions de Drupal est apparue la possibilité d'ajouter des fonctionnalités pendant la vie d'une version majeure. Alors que nous fêtons le premier anniversaire de Drupal 6 et que Drupal 8.1.0 a déjà plus de 6 mois, il est plus que temps de faire le point sur les nouveautés que cette version a apporté pour la plupart sous la forme de modules expérimentaux.
BigPipe
Il y a 8 mois de ça, dans mon article sur l'incroyable cache de Drupal 8, j'évoquais déjà l'existence du module BigPipe, inspiré de la technique inventée par Facebook pour permettre aux utilisateurs de voir un premier rendu de la page, même incomplet, bien plus rapidement et ainsi avoir la sensation que le site se charge plus rapidement. En deux mots, cette technique repose sur le fait de remplacer les parties de la page complexes à calculer par des espaces vides et de les remplacer à la volée après que le contenu principal a été chargé.
La grande nouveauté à propos de ce module est simplement qu'il a été intégré dans le cœur de Drupal et permet donc à tou⋅te⋅s les courageux/ses d'en bénéficier à leurs risques et périls.
Inline Form Errors
Afin de satisfaire les exigences de la norme WCAG en terme d'accessibilité, Drupal a fait le choix de rassembler toutes les erreurs survenues à la soumission d'un formulaire dans un seul message en haut de page. En effet, il est important pour les personnes souffrant de problèmes visuels et utilisant un lecteur d'écran d'avoir un point d'entrée unique pour comprendre pourquoi leur soumission ne s'est pas déroulée comme prévu. Pour les personnes n'ayant pas ce type de problème, l'ergonomie de ce rassemblement de messages laisse à désirer car il est difficile de comprendre le contexte lié aux erreurs.
Avec Inline Form Errors il est désormais possible de proposer des messages ciblés tout en maintenant l'accessibilité. Ce module dispose chaque message à proximité du champ ayant généré l'erreur et utilise la zone centralisée, destinée aux malvoyants, pour afficher un message d'erreur générique pourvu de liens renvoyant vers chaque champ à corriger.
Migrate, Migrate Drupal et Migrate Drupal UI
Note : Migrate Drupal UI s'appelait à l'origine Drupal Upgrade UI mais a été renommé pour des raisons de cohérence.
L'une des promesses du développement de Drupal 8 était de permettre de simplifier la mise à jour d'un site en Drupal 6 ou 7 vers Drupal 8. Malheureusement, la complexité d'une telle tâche n'a pas permis aux contributeurs de fournir les outils nécessaires à temps pour la sortie de la version stable. Tout d'abord, en lieu et place de l'ancienne méthode de montée de version, il a été décidé de s'appuyer sur le module Migrate, présent dans l'écosystème depuis déjà plusieurs années, en l'étendant pour qu'il soit en mesure de traiter nativement toutes les données nécessaires.
Avec Drupal 8.1.0, les équipes de développement du cœur ont enfin eu le temps de finaliser une première version de ces outils et de les intégrer. Cette suite de modules sert donc de socle aux équipes de développement et permet même de convertir la configuration et le contenu d'un site très simple sans une ligne de code. En prime, la présence de Migrate dans le cœur permet également de procéder à des imports de contenus venant d'autres sources comme d'un autre CMS ou d'une base de données indépendante. Dans ce dernier cas, on s'appuiera volontiers sur des modules contribués comme Migrate Source CSV, Migrate Plus et Migrate Tools pour aller encore plus loin.
Pour en savoir plus, vous pouvez consulter le replay du webinar sur les problématiques liées à la migration de contenu et à la montée de version que nous avons tenu par deux fois en collaboration avec Kaliop.
Autres améliorations diverses
Outre ces quelques modules expérimentaux, le reste des fonctionnalités de Drupal a continué d'évoluer afin de proposer des nouveautés qui, même si elles semblent parfois minuscules, contribuent à se rapprocher des besoins de notre industrie.
Choix de la langue lors de l'installation
Cette fonctionnalité qui devait être présente dès Drupal 8.0.0 avait été désactivée en raison d'un trop grand nombre de bugs. Depuis Drupal 8.1.0 il est donc possible d'installer Drupal directement dans une autre langue que l'anglais, en profitant des traductions de la communauté.
Choix de la langue dans l'éditeur de texte riche
Certains sites jonglent dans une même page entre plusieurs langues. Dans le but de satisfaire aux exigences des normes d'accessibilité, il est important de pouvoir spécifier qu'une partie du contenu est dans une autre langue que la page. Ce nouveau plugin pour l'éditeur de texte riche propose de choisir la langue du texte en cours de frapper via un menu déroulant.
Correction orthographique dans l'éditeur de texte riche
Les éditeurs de texte riche étant de petites applications, elles regorgent d'options. Cette modification est l'une des plus petites réalisées dans cette nouvelle version mais son impact est sensible. En 2 lignes de code il s'agit de permettre au navigateur d'accéder au texte inscrit dans l'éditeur pour y appliquer son système de correction orthographique.
Évolutions à destination des développeurs
Bien évidemment, outre les évolutions fonctionnelles, Drupal a aussi beaucoup avancé du point de vue du code et de l'expérience développeur (DX). Voici une petite liste non exhaustive des nouveautés que l'on peut retrouver dans cette version :
- Possibilité d'afficher une entité rendue dans un champ de Views ;
- Ajout de méthodes d'accès aux révisions de tous les types de contenus et pas uniquement des Nodes, simplification du code nécessaire pour définir les champs de base des entités custom et simplification du code nécessaire pour définir les routes d'accès aux formulaires de création d'entités ;
- Mise en place du socle pour créer des tests automatisés en Javascript (à base de PhantomJS) ;
- Retrait des dépendances externes du dépôt de code de Drupal au profit d'une construction via Composer.
À suivre avec les nouveautés de la version 8.2.0… dans moins de 6 mois c'est promis ;)
Photo de couverture © Frank Taillandier
Votre commentaire
À propos de Edouard
Expert technique
Après un premier contact douloureux avec Drupal en 2009 en autodidacte, j'ai suivi une formation qui m'a convaincu de mon choix technologique et m'a vraiment mis en selle. Durant plusieurs années suite à cela j'ai accompagné des entreprises locales dans le développement de leurs projets de toutes sortes, de la simple vitrine à l'intranet social en passant par le projet e-commerce.