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 :
- Créer un module avec Drush
- Attacher un gabarit à une route
- Les différentes catégorie d'entité
- Charger des entités depuis un contrôleur
- Modifier et sauver des entité
- Créer des entités
- Supprimer des entités
- Créer un lien depuis le contrôleur
- Créer un tableau html dans un contrôleur
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
N° | 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 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. |
|
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é |