Makina Blog

Le blog Makina-corpus

Les formulaires en Drupal 8


Présentation des modules disponibles pour construire des formulaires en Drupal 8.

Une fonctionnalité couramment demandée dans les projets ou dans nos formations est la création de formulaires. Si l'API est toujours disponible pour les développeurs, il faut aussi connaître les différentes possibilités offertes aux constructeurs de site Drupal 8. Et aujourd'hui… elles sont nombreuses et des modules comme YAML Form permettent d'aller vraiment très loin.

Webform

Impossible de parler de gestion des formulaires en Drupal sans citer Webform, la solution standard depuis de nombreuses versions. Une couverture fonctionnelle parfaite, une ergonomie bien pensée, un éco-sytème de modules permettant de tout faire (de l'affichage de résultats sous forme graphique à la connexion automatique avec des CRMs). En gros, le choix idéal et le standard de fait en Drupal 7. Mais…

Le port Drupal 8 n'arrivera peut-être jamais (ou du moins est en grosse discussion). Dès lors, plusieurs solutions s'offrent à nous.

Le cœur…

Le module Contact

Aujourd'hui, la communauté s'est concentrée sur l'ajout de champ sur les formulaires de contact, permettant d'assurer le minimum de fonctionnalité de création de formulaires en Drupal 8. C'est un bon début.

Les "Form Modes"

Mais ce n'est pas la seule fonctionnalité disponible dans le cœur Drupal liée aux formulaires. En effet, la création des "form modes" permet d'utiliser des formulaires différents pour la création des mêmes données. Il manque actuellement la possibilité d'utiliser ces formulaires… en bloc, pour les positionner de façon facile dans les différents écrans du site, ou selon les rôles des utilisateurs, par exemple.

Ces fonctionnalités sont en cours de développement dans la communauté et les modules : Form Mode Control / Form Mode Manager / EntityForm Block, …

Contact Storage

Reste qu'avec uniquement le cœur Drupal 8, on manque un peu de fonctionnalités, pas forcément pour la création pure et simple des formulaires, mais vraiment pour leur pleine exploitation (notamment l'intégration dans d'autres contenus). C'est là que la communauté vient encore une fois suppléer le cœur, avec notamment le module Contact Storage, qui ajoute au cœur le formateur de champ "Entité Rendue" pour les formulaires de contact référencés, permettant de les insérer au sein de n'importe quel contenu.

Je vous invite à consulter le très bon article de Flocon de Toile décrivant l'utilisation ce module pour injecter votre formulaire dans un contenu.

Le stockage des soumissions de formulaires est un plus non négligeable d'ailleurs ; en combinant ce module et le module CSV Serialization, on obtient même un export possible des soumissions en CSV. Ici, on approche du cœur des fonctionnalités du module Webform.

D'ailleurs, toutes ces fonctionnalités sont tellement utiles… qu'elles vont probablement être intégrées dans le cœur (voir le ticket correspondant).

YAML Form

Mais certains nostalgiques considèrent qu'un vrai module de formulaires doit également permettre la gestion multipage, les conditions sur les champs, la barre de progression, des gestionnaires de courriels plus poussés … Et un membre de la communauté a du coup développé le module YAML Form :

En bonus, pour les développeurs, il permet le développement de formulaires sous forme de fichier yaml et supporte la copie / réutilisation de formulaires. Bref, c'est mon nouveau module préféré !

Dream Fields

Il subsiste toujours un manque aujourd'hui, une fois intégré les fonctionnalités précédentes : l'ergonomie (gérée auparavant par le module Form Builder) ! Mais on compte tout de même aujourd'hui quelques propositions et notamment 1 tentative :

  • Le module Dream Fields, qui essaie de modifier l'interface de création de champs dans les entités Drupal (et donc des formulaires de contact) :

  • Et ce module a produit une proposition alternative, dans le cœur, de refonte complète de cette même interface, dont l'objectif de publication est la version 8.2.x : Refonte de la FieldUI, avec notamment une très intéressante création centrée sur le widget (qui pourra éventuellement être étendue par Plugin dans des modules contrib) :

Comme toujours dans Drupal, il faut donc suivre ce qui se passe dans la communauté pour identifier les meilleures propositions, mais dans la mesure où le besoin est courant, la communauté se mobilise et on devrait donc d'ici quelques mois (à nouveau cette idée que la "vraie" version 8 sera la version 8.2…) converger vers une solution générique et reconnue par tous. C'est aussi le rôle d'un développeur Drupal d'anticiper les évolutions de la communauté.

Actualités en lien

Image
Encart article DrupalCamp 2024
06/03/2024

Makina Corpus, parte­naire de la Drupal­Camp 2024

Nous sommes fiers d’an­non­cer que Makina Corpus est le spon­sor de la Drupal­Camp à Rennes. Notre expert vous y propose une confé­rence « migrer de Drupal 7 à Drupal 10 ».

Voir l'article
Image
DrupalCon Lille Sponsor
20/10/2023

DrupalCon Lille 2023 : quand Drupal prend (enfin ?) le virage de l'UX

Présentation rapide de sujets ergonomiques discutés lors de la première journée de la DrupalCon Lille 2023

Voir l'article
Image
DrupalCon 23 Encart
14/09/2023

Makina Corpus sponsorise la DrupalCon 2023 à Lille

La DrupalCon 2023 revient en France du 17 au 20 octobre et notre équipe y participe ! Pour cette nouvelle édition de la DruplaCon Fr, Makina Corpus s'engage auprès de Drupal et sponsorise l'événement 2023 à Lille.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus