Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:symfony:extensions:easyadmin:easyadmin [01/10/2022 12:18]
thierry [Premier Dashboard]
prog:symfony:extensions:easyadmin:easyadmin [10/11/2022 12:06] (Version actuelle)
thierry [Sources & Ressources]
Ligne 4: Ligne 4:
  
 ===== Premier Dashboard ===== ===== Premier Dashboard =====
 +==== Création ====
 +
 ''​symfony console make:​admin:​dashboard''​ ''​symfony console make:​admin:​dashboard''​
  
Ligne 11: Ligne 13:
   * Configure your Dashboard at ''​src/​Controller/​Admin/​DashboardController.php''​   * Configure your Dashboard at ''​src/​Controller/​Admin/​DashboardController.php''​
   * Run ''​make:​admin:​crud''​ to generate CRUD controllers and link them from the Dashboard.   * Run ''​make:​admin:​crud''​ to generate CRUD controllers and link them from the Dashboard.
 +
 +==== Création page d'​accueil ====
 +=== Modification du contrôleur ​ ===
 +
 +On modifie la function ''​index''​ du controller pour qu'​elle affiche le template ''​Admin/​index.html.twig''​
 +<code php src\Controller\Admin\DashboardController.php>​
 +class DashboardController extends AbstractDashboardController
 +{
 +    /**
 +     * Page d'​accueil de l'​admin
 +     * @Route("/​admin",​ name="​admin"​)
 +     */
 +    public function index(): Response
 +    {
 +        // return parent::​index();​ <- Code original
 +        return $this->​render('​Admin/​index.html.twig'​);​ //<- Code modifié
 +    }
 +</​code>​
 +=== Création du template ===
 +  * On créé le répértoire ''​templates\Admin''​
 +  * On y créé le fichier ''​index.html.twig''​ avec le code suivant...
 +
 +<code twig templates\Admin\index.html.twig>​
 +{# templates/​admin/​my-custom-page.html.twig #}
 +{% extends '​@EasyAdmin/​page/​content.html.twig'​ %}
 +
 +{% block content_title %}The Title of the Page{% endblock %}
 +{% block page_actions %}
 +    Block Page_actions<​br/>​
 +    <a class="​btn btn-primary"​ href="#">​Some Action</​a>​
 +{% endblock %}
 +
 +{% block main %}
 +Block Main 
 +{% endblock %}
 +</​code>​
 +Ce qui nous donne ceci :
 +{{:​prog:​symfony:​extensions:​easyadmin:​admin_acc.jpg?​600|}}
 +
 +
  
 ===== Sécurité ===== ===== Sécurité =====
Ligne 27: Ligne 69:
         # - { path: ^/profile, roles: ROLE_USER }         # - { path: ^/profile, roles: ROLE_USER }
 </​code>​ </​code>​
 +===== CRUD =====
 +==== Création ====
 +''​symfony console make:​admin:​crud''​
 +
 +==== Ajout du menu dans le controleur ====
 +Dans le controleurs ''​DashboardController.php''​ on ajoute une linge :
 +
 +''​yield MenuItem::​linkToCrud('​%LabelDuMenu%',​ 'fas fa-list',​ %Entity%::​class);''​
 +<code php src\Controller\Admin\DashboardController.php>​
 +    public function configureMenuItems():​ iterable
 +    {
 +        yield MenuItem::​linkToDashboard('​Dashboard',​ 'fa fa-home'​);​
 +        // yield MenuItem::​linkToCrud('​The Label',​ 'fas fa-list',​ EntityClass::​class);​
 +        yield MenuItem::​linkToCrud('​Tickets',​ 'fas fa-list',​ GTicket::​class);​ //<- Ligne ajoutée
 +    }
 +</​code>​
 +=== Les icones ===
 +Le paramètre '''​fas fa-list'''​ est une référence aux icônes de [[https://​fontawesome.com|Font Awesome]] : [[https://​fontawesome.com/​icons/​list?​s=solid&​f=classic|List]]
 +
 +==== Plusieurs CrudControllers pour la mème Entity ====
 +Dans l'​exemple ci dessous on gère la même Entity : ''​GDistributeur'',​ mais on pointe sur deux 
 +contrôleurs différents
 +  * Le premier sur le controleur par défaut
 +  * Le deuxieme on force a utiliser le controlleur ayant la class ''​GTicketDistributeurCrudController::​class''​
 +<code php>
 +        yield MenuItem::​linkToCrud('​Distributeurs',​ 'fas fa-list',​ GDistributeur::​class); ​
 +        yield MenuItem::​linkToCrud('​Gestion des Tickets',​ 'fa fa-question-circle',​ GDistributeur::​class)
 +          ->​setController(GTicketDistributeurCrudController::​class); ​   ​
 +</​code>​
 +
 +
 +
 +
 +
 ====== Sources & Ressources ====== ====== Sources & Ressources ======
   * [[https://​symfony.com/​bundles/​EasyAdminBundle/​current/​dashboards.html]]   * [[https://​symfony.com/​bundles/​EasyAdminBundle/​current/​dashboards.html]]
   * [[https://​www.youtube.com/​watch?​v=g6cYQ3IXGHY|Vidéo Youtube : Créons un BackOffice facilement avec EasyAdmin 3 ! de Yoandev]]   * [[https://​www.youtube.com/​watch?​v=g6cYQ3IXGHY|Vidéo Youtube : Créons un BackOffice facilement avec EasyAdmin 3 ! de Yoandev]]
 +  * [[https://​afsy.fr/​avent/​2017/​01-easyadminbundle-l-arriere-guichet-easy-peasy]]
 +  * [[https://​symfony.com/​bundles/​EasyAdminBundle/​3.x/​index.html]]
 +  * [[https://​fr.slideshare.net/​rkueny/​prsentation-de-easyadmin-le-bundle-dadmin-de-symfony]] <- intéressant !