Accueil / Blog / Métier / 2016 / Les formulaires en Drupal 8

Les formulaires en Drupal 8

Par Simon Georges — publié 30/06/2016
Présentation des modules disponibles pour construire des formulaires en Drupal 8.
Les  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 :

YAML Form page wizard

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) :

Dream fields

  • 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) :

Field Widget

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é.

Contenus corrélés

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Mon Top 30 des modules Drupal 8 Mon Top 30 des modules Drupal 8 16/02/2019

Transcription d'une conférence donnée au Drupalcamp Paris 2019

Makina Corpus lance une nouvelle offre pour sécuriser les projets Drupal des ESN Makina Corpus lance une nouvelle offre pour sécuriser les projets Drupal des ESN 18/02/2019

Formations et accompagnement pour sécuriser les projets Drupal

Drupal : un CMS pas comme les autres Drupal : un CMS pas comme les autres 15/02/2019

Mais moi je l'aime, c'est pas de ma faute…

Makina Corpus au Drupalcamp du 15 au 17 février Makina Corpus au Drupalcamp du 15 au 17 février 13/02/2019

Conférences et atelier, rejoignez-nous !

Drupal 8 : Dynamiser vos contenus à l'aide des formulaires AJAX Drupal 8 : Dynamiser vos contenus à l'aide des formulaires AJAX 18/12/2018

Utiliser les AjaxCommands de l'API de Drupal 8 pour agir sur le Markup