Au préalable, connectez-vous avec le compte développeur et allez dans la section "Modèle de page" et créer en un nouveau, ATTENTION la clé de template doit être en un seul mot, ex: "list", "imageText", "newListOfArticles" ...
- Créer une nouvelle entité (et le repository) avec le nom du template + "Template", ex: "ListTemplate", "ImageTextTemplate" ...
- Il ne faut pas oublier d'ajouter la liaison avec l'entité "Page" et celle avec l'entité "Template", des exemples de templates sont présents :
src/Entity/------Template
- Dans l'entité
src/Entity/Template
ajouter une nouvelle constante avec la "clé de template" créé au préalable de l'étape 1. - Créer une nouvelle migration :
symfony console make:migration
- Faire la review de la migration et l'executer :
symfony console doctrine:migrations:migrate -n
- Créer le FormType correspondant avec la nomenclature : nom de l'entité + "Type"
- Éditer le PageType en ajoutant dans l'event de "PRE_SET_DATA" une condition pour ce type de page
- Dans la fonction manageElements() il y a des exemples
- Dans le
src/Handler/PageHandler
, il faut ajouter le nouveau type de template dans la fonction handleTemplate - Si il y a une logique métier à implementer pour le nouveau Modèle de page, il faut l'ajouter dans le :
src/Handler/PageHandler
dans la fonction process
- Modifier la fonction handlePage() dans le
src/Controller/Front/Page/Read
- Créer un nouveau template twig avec comme nom, la clé de template créé depuis l'interface "Modèle de page" de l'espace d'administration, ex : "list.html.twig", "imageText.html.twig"
- Des exemples sont présents via les autres templates