src/EventListener/MenuBuilderListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
  4. use Sylius\Bundle\AdminBundle\Event\CustomerShowMenuBuilderEvent;
  5. use Knp\Menu\ItemInterface;
  6. use Knp\Menu\Util\MenuManipulator;
  7. final class MenuBuilderListener
  8. {
  9.     private $manipulator;
  10.     public function __construct(MenuManipulator $manipulator)
  11.     {
  12.         $this->manipulator $manipulator;
  13.     }
  14.     /**
  15.      * @param MenuBuilderEvent $event
  16.      */
  17.     public function addCustomerShowMenuItems(CustomerShowMenuBuilderEvent $event)
  18.     {
  19.         $menu $event->getMenu();
  20.         
  21.         unset($menu['user_delete']);
  22.         $menu->addChild('customer_synchronize', [
  23.             'route' => 'app_admin_customer_synchronize_single_customer',
  24.             'routeParameters' => ['id' => $event->getCustomer()->getId()],
  25.         ])
  26.         ->setLabel('Synchroniser le client');
  27.         $this->manipulator->moveToFirstPosition($menu['customer_synchronize']);
  28.     }
  29.     /**
  30.      * @param MenuBuilderEvent $event
  31.      */
  32.     public function addBackendMenuItems(MenuBuilderEvent $event)
  33.     {
  34.         $menu $event->getMenu();
  35.         $this->addBackendSiteMenu($menu);
  36.         $this->manipulator->moveToFirstPosition($menu['site']);
  37.         $this->manipulator->moveToLastPosition($menu['configuration']);
  38.         $this->manipulator->moveToLastPosition($menu['bitbag_cms']);
  39.     }
  40.     public function addBackendSiteMenu(ItemInterface $menu)
  41.     {
  42.         // dump($menu);
  43.         
  44.         $siteSubMenu $menu
  45.             ->addChild('site')
  46.             ->setLabel('Site')
  47.         ;
  48.         $siteSubMenu
  49.             ->addChild('site-help', ['route' => 'app_admin_help'])
  50.             ->setLabel('Aide à la gestion du site')
  51.             ->setLabelAttribute('icon''help')
  52.         ;
  53.         $siteSubMenu
  54.             ->addChild('site-shop', ['route' => 'app_admin_site_shop_index'])
  55.             ->setLabel('Boutiques PPMC')
  56.             ->setLabelAttribute('icon''shopping basket')
  57.         ;
  58.         $siteSubMenu
  59.             ->addChild('site-apel', ['route' => 'app_admin_site_apel_index'])
  60.             ->setLabel('APEL')
  61.             ->setLabelAttribute('icon''shopping basket')
  62.         ;
  63.         $siteSubMenu
  64.             ->addChild('site-menu-header', ['route' => 'app_admin_site_menu_header_create'])
  65.             ->setLabel('Menu Header')
  66.             ->setLabelAttribute('icon''list')
  67.         ;
  68.         $siteSubMenu
  69.             ->addChild('site-menu-footer', ['route' => 'app_admin_site_menu_footer_index'])
  70.             ->setLabel('Menu Footer')
  71.             ->setLabelAttribute('icon''list')
  72.         ;
  73.         $siteSubMenu
  74.             ->addChild('accueil-slide', ['route' => 'app_admin_site_home_slide_index'])
  75.             ->setLabel('Accueil - Slides')
  76.             ->setLabelAttribute('icon''images outline')
  77.         ;
  78.         $siteSubMenu
  79.             ->addChild('accueil-declinaison', ['route' => 'app_admin_site_home_product_variant_index'])
  80.             ->setLabel('Accueil - Déclinaisons produits')
  81.             ->setLabelAttribute('icon''list alternate')
  82.         ;
  83.         $siteSubMenu
  84.             ->addChild('accueil-saison', ['route' => 'app_admin_site_home_slide_saison_index'])
  85.             ->setLabel('Accueil - Slides Saison')
  86.             ->setLabelAttribute('icon''images')
  87.         ;
  88.         $siteSubMenu
  89.             ->addChild('accueil-imprime', ['route' => 'app_admin_site_home_imprime_index'])
  90.             ->setLabel('Accueil - Bloc "Imprimés"')
  91.             ->setLabelAttribute('icon''print')
  92.         ;
  93.         $siteSubMenu
  94.             ->addChild('accueil-vouslesadorez', ['route' => 'app_admin_site_home_main_taxon_index'])
  95.             ->setLabel('Accueil - "Vous les adorez !"')
  96.             ->setLabelAttribute('icon''heartbeat')
  97.         ;
  98.         $siteSubMenu
  99.             ->addChild('accueil-coteboutique', ['route' => 'app_admin_site_home_coteboutique_index'])
  100.             ->setLabel('Accueil - Bloc "Côté Boutique"')
  101.             ->setLabelAttribute('icon''shopping bag')
  102.         ;
  103.         $siteSubMenu
  104.             ->addChild('gift-idea-link', ['route' => 'app_admin_site_gift_idea_link_index'])
  105.             ->setLabel('Idées cadeaux - Liens')
  106.             ->setLabelAttribute('icon''linkify')
  107.         ;
  108.         $siteSubMenu
  109.             ->addChild('site-bloc-insurance', ['route' => 'app_admin_site_bloc_insurance_index'])
  110.             ->setLabel('Blocs Assurance')
  111.             ->setLabelAttribute('icon''block layout')
  112.         ;
  113.         $siteSubMenu
  114.             ->addChild('site-sac-zip-accessories', ['route' => 'app_admin_site_sac_zip_accessories_index'])
  115.             ->setLabel('Sac&Zip - Accessoires')
  116.             ->setLabelAttribute('icon''shopping bag')
  117.         ;
  118.         $siteSubMenu
  119.             ->addChild('site-sac-zip-combinaisons', ['route' => 'app_admin_site_sac_zip_selection_index'])
  120.             ->setLabel('Sac&Zip - Combinaisons')
  121.             ->setLabelAttribute('icon''random')
  122.         ;
  123.         $menu['catalog']
  124.             ->addChild('collections-colors', ['route' => 'app_admin_site_product_option_value_match_index'])
  125.             ->setLabel('Associations de collections')
  126.             ->setLabelAttribute('icon''paint brush alternate')
  127.         ;
  128.         $menu['catalog']
  129.             ->addChild('site-faq-product', ['route' => 'app_admin_site_faq_product_index'])
  130.             ->setLabel('FAQ Produit')
  131.             ->setLabelAttribute('icon''question circle')
  132.         ;
  133.         $menu['catalog']
  134.             ->addChild('site-filter-facet', ['route' => 'app_admin_site_filter_facet_index'])
  135.             ->setLabel('Filtres à facettes')
  136.             ->setLabelAttribute('icon''filter')
  137.         ;
  138.         $menu['catalog']
  139.             ->addChild('site-collection', ['route' => 'app_admin_site_collection_index'])
  140.             ->setLabel('Collections')
  141.             ->setLabelAttribute('icon''magic')
  142.         ;
  143.         $siteSubMenu $menu
  144.             ->addChild('search-engine')
  145.             ->setLabel('Moteur de recherche')
  146.         ;
  147.         $menu['search-engine']
  148.             ->addChild('site-search-suggest-text', ['route' => 'app_admin_site_search_suggest_text_index'])
  149.             ->setLabel("Suggestions de recherche")
  150.             ->setLabelAttribute('icon''tasks')
  151.         ;
  152.         $menu['search-engine']
  153.             ->addChild('site-search-suggest-product-variant', ['route' => 'app_admin_site_search_suggest_product_variant_index'])
  154.             ->setLabel("Suggestions de produits")
  155.             ->setLabelAttribute('icon''cubes')
  156.         ;
  157.         $siteSubMenu $menu
  158.             ->addChild('articles-pages-cms')
  159.             ->setLabel('Gestion du contenu')
  160.         ;
  161.         $menu['articles-pages-cms']
  162.             ->addChild('site-article-categories', ['route' => 'app_admin_site_article_category_index'])
  163.             ->setLabel("Catégories d'articles")
  164.             ->setLabelAttribute('icon''folder')
  165.         ;
  166.         $menu['articles-pages-cms']
  167.             ->addChild('site-article', ['route' => 'app_admin_site_article_index'])
  168.             ->setLabel("Articles")
  169.             ->setLabelAttribute('icon''pencil alternate')
  170.         ;
  171.         $menu['articles-pages-cms']
  172.             ->addChild('site-page-cms', ['route' => 'app_admin_site_page_cms_index'])
  173.             ->setLabel("Pages CMS")
  174.             ->setLabelAttribute('icon''paste alternate')
  175.         ;
  176.         $menu['articles-pages-cms']
  177.             ->addChild('site-faq-category', ['route' => 'app_admin_site_faq_category_index'])
  178.             ->setLabel("Catégories - FAQ")
  179.             ->setLabelAttribute('icon''help alternate')
  180.         ; 
  181.         
  182.         $menu['articles-pages-cms']
  183.             ->addChild('site-faq', ['route' => 'app_admin_site_faq_index'])
  184.             ->setLabel("FAQ")
  185.             ->setLabelAttribute('icon''help alternate')
  186.         ; 
  187.         $menu['articles-pages-cms']
  188.             ->addChild('site-selection-categories', ['route' => 'app_admin_site_selection_category_index'])
  189.             ->setLabel("Catégories de sélections")
  190.             ->setLabelAttribute('icon''folder')
  191.         ;
  192.         $menu['articles-pages-cms']
  193.             ->addChild('site-selection', ['route' => 'app_admin_site_selection_index'])
  194.             ->setLabel("Sélections")
  195.             ->setLabelAttribute('icon''pencil alternate')
  196.         ;
  197.         $menu['customers']
  198.             ->addChild('site-contact', ['route' => 'app_admin_site_contact_index'])
  199.             ->setLabel('Formulaire de contact')
  200.             ->setLabelAttribute('icon''paint brush alternate')
  201.         ;
  202.         $menu['sales']
  203.             ->addChild('parameters', ['route' => 'app_admin_sylius_sales_parameter_index'])
  204.             ->setLabel('Configuration')
  205.             ->setLabelAttribute('icon''cog')
  206.         ;
  207.         $menu['catalog']
  208.             ->addChild('site-variants-attributes', ['route' => 'app_admin_variants_attributes_index'])
  209.             ->setLabel('Variants/Caractéristiques')
  210.             ->setLabelAttribute('icon''paint map signs alternate')
  211.         ;
  212.         $menu['catalog']
  213.             ->addChild('site-variants-taxons', ['route' => 'app_admin_variants_taxons_index'])
  214.             ->setLabel('Variants/Taxons')
  215.             ->setLabelAttribute('icon''paint map signs alternate')
  216.         ;
  217.     }    
  218.     public function addProductVariantItem(MenuBuilderEvent $event)
  219.     {
  220.         $menu $event->getMenu();
  221.         $menu
  222.             ->addChild('attributes')
  223.             ->setAttribute('template''@SyliusAdmin/ProductVariant/Tab/_attributes.html.twig')
  224.             ->setLabel('Caractéristiques')
  225.         ;
  226.     }
  227. }