You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.0 KiB
4.0 KiB
TP3.2: Templating avec Twig
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Permission is explicitly granted to copy, distribute and/or modify this document for educational purposes under the terms of the CC BY-NC-SA license.
Objectifs
Les objectifs de ce TP sont :
- Comprendre et mettre en œuvre les opérations CRUD (Create, Read, Update, Delete) avec Twig dans une application Symfony.
- S'approprier les structures de contrôle de Twig (
if
/for
/etc). - Comprendre les méchanismes d'héritage et d'extension de templates.
Consignes
- Durée : 2 heures
- Tous vos projets
Symfony
sont à placer votre dossier~/public_html
. - N'utilisez PAS le serveur
londres.uca.local
pour tester vos pages mais la commandesymfony server:start
. - Nous allons continuer notre réseau social nommé
TweetTok
où les messages sont nommés desTwok
. - Lors du précédent TP, nous avons stocké les
Twoks
en BDD, mais avec un CRUD très rudimentaire. - Nous allons maintenant améliorer les vues avec Twig.
- Repartez donc de votre précédent projet
TweetTok
. - Attention! L'utilisation des commandes
symfony console make:crud
etsymfony console make:form
sont interdites pour le moment ! L'objectif est de comprendre ce qu'elles font.
Ressources
- Documentation de Symfony sur Twig : https://symfony.com/doc/5.x/templates.html
- Documentation de Twig : https://twig.symfony.com/doc/2.x/templates.html
Partie 1 : Affichage des Twoks (30 min)
-
Template de base :
- Créez un fichier
base.html.twig
qui contient les balises<head>
et<body>
de votre page web. - Créez un block
body
vide qui sera rempli par les autres templates.
- Créez un fichier
-
Liste des Twoks :
- Créez un template
index.html.twig
pour afficher la liste desTwoks
. Utilisez une bouclefor
pour itérer sur chaqueTwok
. Affichez le contenu duTwok
, son auteur et sa date de création formatée. - Faites en sorte que le votre template
index.html.twig
étende le templatebase.html.twig
pour ne pas avoir à dupliquer de code HTML.
- Créez un template
-
Filtres personnalisés :
- Créez un filtre Twig personnalisé pour résumer les
Twoks
qui sont trop longs. Implémentez le filtre dans le fichiersrc/Twig/AppExtension.php
et nommez ce filtresummarize
. Voir doc sur les extension Twig. - Utilisez ce filtre dans votre template pour afficher un résumé des
Twoks
.{{ twok.content|summarize(100) }}
- Créez un filtre Twig personnalisé pour résumer les
Partie 2 : Interaction avec les Twoks (45 min)
-
Affichage conditionnel :
- Ajoutez un affichage conditionnel pour montrer un message spécial (ex: "Nouveau Twok !") si un
Twok
a été créé le jour même.
- Ajoutez un affichage conditionnel pour montrer un message spécial (ex: "Nouveau Twok !") si un
-
Inclusion de Templates :
- Créez un template séparé pour afficher les détails d'un
Twok
(twok_detail.html.twig
) et incluez-le dans votre liste deTwoks
.
- Créez un template séparé pour afficher les détails d'un
-
Macros Twig pour les boutons :
- Définissez une macro Twig pour générer des boutons de like et de partage
pour chaque
Twok
. Utilisez cette macro dans le template de détail duTwok
.
- Définissez une macro Twig pour générer des boutons de like et de partage
pour chaque
Partie 3 : Fonctionnalités Avancées (45 min)
-
Affichage alterné :
- Expérimentez avec des structures de contrôle avancées en affichant les
Twoks
en alternance : unTwok
sur fond clair, l'autre sur fond sombre.
- Expérimentez avec des structures de contrôle avancées en affichant les
-
Twoks
par utilisateur :- Créez un nouveau template
twok_by_user.html.twig
qui permettra de lister l'ensemble des utilisateurs avec pour chaqun une liste de sesTwoks
.
- Créez un nouveau template
-
Ordre des
Twoks
:- Dans votre template
index.html.twig
, faites en sorte qu'il soit possible de lister lesTwoks
du plus ancien au plus récent et l'inverse.
- Dans votre template