TP n°3 Utiliser des formulaires dans Drupal

Drupal 8

TP n°3 Utiliser des formulaires dans Drupal

Soumis par Antoine le lun 23/03/2020 - 18:41

Dans ce tp, vous allez apprendre à créer des formulaires pour modifier en masse des articles. Pour réaliser ce tuto, vous devez savoir créer le squelette d'un module, créer des routes et manipuler des entités

Objectifs pédagogiques

A la fin de ce tp, vous devez être capable de :

  • créer un fichier src/Form/nomformulaire et y intégrer les méthodes nécessaires à la gestion d'un formulaire (construction, validation, soumission)
  • afficher un formulaire 
  • afficher des champs d'un formulaire en fonction de ce qui est saisi dans un autre champs champ
  • afficher un message d'information à l'aide de la méthode $this->messenger()->addStatus() 

Ressources utiles :

Vous devez lire les articles suivants :

Missions :

Créer un module qui ajoute un formulaire qui à la caractéristiques suivantes :

  • Un champ sélect qui permet de choisir entre les options, "rajouter une signature" et "Cocher la case générer automatique"
  • Si c'est l'option "rajouter une signature" est choisie, un textarea doit apparaître, dans laquelle l'utilisateur pourra saisir une phrase qui sera rajoutée à la fin des body des articles sélectionnés
  • Si c'est l'option "Cocher la case générer automatique", deux boutons radios proposant les options "cocher", "décocher" doivent apparaître.  L'option "cocher" est choisie par défaut
  • Une table select doit permettre de choisir parmi la liste des articles, ceux à qui les modifications seront appliquées
  • Un bouton submit qui permet de valider le formulaire

Le formulaire ne pourra pas être validé si aucun article n'est choisi ou si la signature est vide

Après la soumission un message d'information doit apparaître indiquant le nombre d'article modifié.

Le formulaire devra être accessible par une route qui pointe vers un formulaire

Dans la vidéo ci-dessous, vous trouverez une présentation de la mission :

Les étapes

Actions à mener Ressources utiles
1 Créer un squelette du module avec un contrôleur Créer le squelette du module avec un contrôleur
2 Créer un fichier src/Form/tp3Form.php et les 4 fonctions vides d'un formulaire Utiliser un formulaire
3 Remplir la fonction getFormId() Utiliser un formulaire
4 Dans la fonction build() :  
5  - créer le select Utiliser et paramétrer des éléments de formulaire
6  - Créer le textarea avec un état qui le rend visible en fonction de ce qui est choisi dans le select Utiliser et paramétrer des éléments de formulaire
7  - Créer les boutons radio avec un état qui le rend visible en fonction de ce qui est choisi dans le select Utiliser et paramétrer des éléments de formulaire
8  - Charger les articles Charger des entités
9  - Créer le tableselect Utiliser et paramétrer des éléments de formulaire
10  - Créer le bouton submit Utiliser un formulaire
11 Créer la route qui pointe vers le formulaire et tester l'affichage du formulaire Utiliser un formulaire
12 Dans la fonction submit() :  
13  - récupérer les articles séléctionnées grâce à un loadmultiple sur les éléments sélectionné dans le table select Charger des entités + Utiliser et paramétrer des éléments de formulaire
14  - faire un test pour connaitre le sélect choisi et faire une boucle pour modifier les résultats Modifier et sauver des entités
15  - afficher le message avec $this->messenger()->addStatus();  
16 Dans la fonction validateform()  
17  - Renvoyer une erreur si le select est sur le textarea et la textarea est vide Utiliser un formulaire
18  - Renvoyer une erreur si le select est sur les boutons radios et la valeur des radios = false Utiliser un formulaire

 

Documents utiles
Version