Blog ENI : Toute la veille numérique !
🚀 PROLONGATION : Jusqu'à -30% sur tous les
livres en ligne, vidéos & e-formations. Cliquez ici
💥 Interessé(e) par un accès illimité à
tous nos livres & vidéos, sur l'IA, le dev, les réseaux... ? Cliquez ici
  1. Livres et vidéos
  2. Drupal 10
  3. Les formulaires
Extrait - Drupal 10 Le guide complet pour le développement de solutions web robustes
Extraits du livre
Drupal 10 Le guide complet pour le développement de solutions web robustes Revenir à la page d'achat du livre

Les formulaires

Introduction

Drupal offre des outils puissants pour la gestion des formulaires, permettant aux développeurs de créer des expériences utilisateur interactives et fonctionnelles ultra personnalisées.

Dans ce chapitre, nous commencerons par explorer la construction de formulaires personnalisés, en plongeant dans la Form API de Drupal, qui reste l’une des caractéristiques les plus puissantes et flexibles de cette plateforme.

Vous apprendrez à manipuler les FormState, à utiliser efficacement la Form API pour créer des éléments de formulaire interactifs, et à intégrer des fonctionnalités de validation et de soumission qui sont essentielles pour la sécurité et l’efficacité des données utilisateur.

Nous traiterons également de l’utilisation des states pour enrichir vos formulaires avec des fonctionnalités JavaScript, ainsi que l’utilisation d’AJAX pour des interactions sans rechargement de page.

Enfin, nous aborderons le cas particulier des formulaires de configuration qui sont essentiels pour personnaliser le comportement des modules à travers l’interface d’administration de Drupal.

Dans la suite de ce chapitre, nous continuerons d’utiliser le module my_module comme support de notre code personnalisé. Consultez le chapitre Création de modules personnalisés pour plus...

Formulaire personnalisé

Commencez par créer un nouveau formulaire personnalisé que vous nommerez « Example Form ». Pour ce faire, vous utiliserez la commande drush generate, qui est un moyen efficace pour générer rapidement le squelette de base d’un formulaire. Cela permet non seulement de gagner du temps mais aussi de minimiser les erreurs potentielles de codage manuel.

 Ouvrez votre terminal et positionnez-vous à la racine de votre projet Drupal. Tapez la commande suivante :

drush generate form:simple 
# Alias 
drush generate form 

Après avoir lancé la commande, Drush vous pose une série de questions pour configurer votre formulaire. Ces questions incluent le nom du module dans lequel le formulaire sera inclus, l’identifiant du formulaire, et d’autres options nécessaires à la configuration initiale de votre formulaire personnalisé.

 Suivez les instructions à l’écran pour saisir les informations demandées. Une fois toutes les informations fournies, Drush génère automatiquement les fichiers nécessaires pour votre formulaire dans le module spécifié.

images/12EI01.png

 Reconstruisez le cache Drupal avec la commande drush cr afin que votre nouvelle route soit prise en compte, puis accédez au formulaire sur l’URL que vous aurez définie (/my-module/example dans ce cas).

images/12EI02.png

Deux fichiers seront impactés dans votre module :

  • le fichier my_module.routing.yml dans lequel la route vers votre formulaire est déclarée.

my_module.example_form: 
 path: '/my-module/example' 
 defaults: 
   _title: 'Example Form' 
   _form: 'Drupal\my_module\Form\ExampleForm' 
 requirements: 
   _permission: 'access content' 

my_module.example_form : il s’agit de l’identifiant unique de votre route. Il est courant de préfixer l’identifiant de la route avec le nom du module pour éviter les conflits avec d’autres modules.

path : cette clé spécifie l’URL relative où le formulaire sera accessible. Ici, /my-module/example indique que le formulaire sera accessible à cette URL.

defaults :

_title : le titre de la page du formulaire lorsqu’elle...

Formulaire de configuration

Les formulaires de configuration dans Drupal sont essentiels pour permettre aux administrateurs de sites de personnaliser le comportement des modules sans avoir besoin de toucher au code source.

Ces formulaires interagissent directement avec le système de configuration de Drupal, permettant la sauvegarde, la récupération et la gestion des configurations à travers une interface utilisateur accessible.

De plus, la configuration pourra être exportée au moyen de la commande drush config:export que vous avez vue dans le chapitre Les configurations.

1. Générer le formulaire de configuration

Pour créer un formulaire de configuration dans un module Drupal, vous pouvez utiliser la commande Drush suivante :

drush generate form:config 
# Alias 
drush generate config-form 

Tout comme pour la génération des formulaires personnalisés, une série de questions vous sera alors posée.

images/12EI29.png

Lors de la création d’un formulaire de configuration avec Drush, plusieurs fichiers sont générés ou modifiés.

Le code généré a été très légèrement modifié en ajoutant un second champ dans le formulaire de configuration dans un but pédagogique.

src/Form/CustomSettingsForm.php

Ce fichier contient le code du formulaire de configuration accessible aux utilisateurs.

namespace Drupal\my_module\Form; 
 
use Drupal\Core\Form\ConfigFormBase; 
use Drupal\Core\Form\FormStateInterface; 
 
/** 
 * Configure My module settings for this site. 
 */ 
final class CustomSettingsForm extends ConfigFormBase { 
 
 /** 
  * {@inheritdoc} 
  */ 
 public function getFormId(): string { 
   return 'my_module_custom_settings'; 
 } 
 
 /** 
  * {@inheritdoc} 
  */ 
 protected function getEditableConfigNames(): array { 
   return ['my_module.custom_settings']; 
 } 
 
 /** 
  * {@inheritdoc} 
  */ 
 public function buildForm(array $form, FormStateInterface  
$form_state): array { 
   $config = $this->config('my_module.custom_settings'); ...