TP n°2 Manipuler des entités dans Drupal

Drupal 8

TP n°2 Manipuler des entités dans Drupal

Soumis par Antoine le sam 21/03/2020 - 20:04

Dans ce tp vous allez apprendre à manipuler des entités et continuer à manipuler des routes. Pour réaliser ce tuto, vous devez avoir terminé les tp précédents.

Objectifs pédagogiques

A la fin de ce module vous devez être capable de 

  • créer un module avec drush
  • rattacher un gabarit à une route
  • créer un tableau qui sera rendu automatiquement
  • charger/créer/modifier/supprimer des noeuds

Ressources utiles

Vous devez lire les articles suivants :

Missions

Créer pour drupal 8 un module avec drush. Ce module doit avoir 4 routes

  • La première route est accessible à l'adresse "site/workwithentity/home" et affiche un tableau avec 5 colonnes
    • "Id" qui contient l'id des articles
    • "Nom article" qui contient le nom des articles
    • "Etat de publication" qui contient "oui" ou "non" 
    • "Publier ?" qui contient un lien qui pointe vers la route "site/workwithentity/publier/id_article/1"
    • "Dépublier ?" qui contient un lien qui pointe vers la route "site/workwithentity/publier/id_article/0"
    • "Supprimer" qui contient un lien qui pointe vers la route "site/workwithentity/supprimer/id_article"

Au dessus du tableau, il doit avoir un bouton créer un article qui envoie vers la route "site/workwithentity/creer"

  • La seconde route est accessible à l'adresse "site/workwithentity/publier/{id_article}/{etat}"

A partir du paramètre {id_article}, vous devez charger l'article. Après avoir vérifié que l'article a bien été chargé et qu'il s'agit d'un article, vous devez le publier ou le dépublier en fonction du paramètre {etat}. Ensuite vous devez charger une page dont le titre est "Modification de l'article" et où il est écrit : "L'article n°xxx a bien été publié/dépublié".

  • La troisième route est accessible à l'adresse "site/workwithentity/supprimer/{id_article}"

A partir du paramètre {id_article}, vous devez charger l'article. Après avoir vérifié que l'article a bien été chargé et qu'il s'agit d'un article, vous devez le supprimer. Ensuite vous devez charger une page dont le titre est "Suppression d'article" et où il est écrit. L'article n°xxx a bien été supprimé.

  • La quatrième route est accessible à l'adresse "site/workwithentity/créer"

Vous devez créer un article dont le titre est nouvel article + la date et l'heure actuel. Le corps de l'article doit contenir du lorem ipsom. Vous devez ensuite afficher le titre et le body sur une nouvelle page. Nous verrons dans les tps suivants comment utiliser les routes qui pointent vers les formulaires de création des nœuds.

Vous trouverez dans la vidéo ci-dessous, une présentation de la mission :

Les étapes

Les tâches à réaliser Ressources utiles
1 Créer le squelette du module avec un contrôleur Créer un squelette de module avec drush
2

Créer

  • la route home,
  • dans le contrôleur la méthode home(),
  • dans le fichier nommodule.module le thème,
  • dans le dossier templates le gabarit twig.

La méthode ne doit contenir que la partie return

Attacher un gabarit à une route
3 Installer le module pour vérifier que votre route marche en mettant du texte dans le gabarit Activer un module avec drush
4 Récupérer  tous les articles Charger des entités
5 Construire le tableau en mettant juste du texte à la place des liens. Créer un tableau html depuis le contrôleur
6 Modifier le gabarit pour qu'il affiche le tableau avec {{variable qui contient le tableau}}  
7

Créer les autres 3 routes et les méthodes du contrôleur, les thèmes et les gabarits.

Les méthodes ne doivent contenir que la partie return

Pense à vider le cache après chaque modif d'un fichier yml.

Le but est d'arriver à afficher chaque page avec juste marqué "coucou" dans le gabarit.

Gérer les routes +

Attacher un gabarit à une route

8

Modifier le tableau pour afficher des liens.

Ajouter un lien en forme de bouton au dessus du tableau qui pointe vers créer (vous pouvez utiliser un local action mais ce n'est pas obligatoire)

A la fin de cette étape vous pouvez naviguer sur toutes les pages, mais cela ne produit aucune action

Créer un lien depuis le contrôleur + Créer un local action (optionnel)
9 Dans la méthode "publier" du contrôleur, charger l'article à partir de l'id reçu par la méthode puis la modifier et sauvegarder Charger des entités + Modifier et sauver des entités de contenu
10 Dans la méthode "supprimer" du contrôleur, charger l'article à partir de l'id et le supprimer Charger des entités + Supprimer des entités
11 Dans la méthode "creer" du contrôleur, créer et sauvegarder l'article Créer une entité

 

Documents utiles
Version