src/Menu/AdminMenuListener.php line 21

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Menu;
  4. use App\Entity\User\AdminUser;
  5. use Arobases\SyliusRightsManagementPlugin\Provider\CurrentAdminUserProviderInterface;
  6. use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
  7. final class AdminMenuListener
  8. {
  9.     private CurrentAdminUserProviderInterface $currentAdminUserProvider;
  10.     public function __construct(CurrentAdminUserProviderInterface $currentAdminUserProvider)
  11.     {
  12.         $this->currentAdminUserProvider $currentAdminUserProvider;
  13.     }
  14.     public function addAdminMenuItems(MenuBuilderEvent $event): void
  15.     {
  16.         $menu $event->getMenu();
  17.         // CATALOGUE
  18.         $menu->getChild('catalog')->addChild('product_files', [
  19.             'route' => 'app_admin_product_file_index',
  20.         ])->setLabel('app.menu.admin.product_files')->setLabelAttribute('icon''file');
  21.         $menu->getChild('catalog')->addChild('supplier', [
  22.             'route' => 'app_admin_supplier_index',
  23.         ])->setLabel('app.ui.suppliers')->setLabelAttribute('icon''users');
  24.         $menu->getChild('catalog')->addChild('brand', [
  25.             'route' => 'app_admin_brand_index',
  26.         ])->setLabel('app.menu.admin.brands')->setLabelAttribute('icon''building');
  27.         $menu->getChild('catalog')->addChild('imports', [
  28.             'route' => 'app_admin_imports_index',
  29.         ])->setLabel('app.menu.admin.imports')->setLabelAttribute('icon''upload');
  30.         $menu->getChild('catalog')->addChild('exports', [
  31.             'route' => 'app_admin_export_index',
  32.         ])->setLabel('app.menu.admin.exports')->setLabelAttribute('icon''download');
  33.         // VENTES
  34.         $menu->getChild('sales')->addChild('forgotten_cart', [
  35.             'route' => 'app_admin_forgotten_cart_index',
  36.         ])->setLabel('app.menu.admin.list_forgotten_carts')->setLabelAttribute('icon''cart');
  37.         $menu->getChild('sales')->addChild('order_status', [
  38.             'route' => 'app_admin_order_status_index',
  39.         ])->setLabel('app.menu.admin.order_status')->setLabelAttribute('icon''cart');
  40.         $menu->getChild('sales')->addChild('availability_notifier', [
  41.             'route' => 'app_admin_availability_notifier_index',
  42.         ])->setLabel('app.menu.admin.availability_notifier')->setLabelAttribute('icon''users');
  43.         $menu->getChild('sales')->addChild('accounting_export', [
  44.             'route' => 'app_admin_accounting_export_index',
  45.         ])->setLabel('app.menu.admin.accounting_export')->setLabelAttribute('icon''barcode');
  46.         $menu->getChild('sales')->addChild('reliquat', [
  47.             'route' => 'app_admin_reliquat_index',
  48.         ])->setLabel('app.ui.reliquats')->setLabelAttribute('icon''options');
  49.         // MARKETING
  50.         $menu->getChild('monsieurbiz.statistics')->addChild('activity_report', [
  51.             'route' => 'app_admin_statistic_report_index',
  52.         ])->setLabel('app.menu.admin.activity_report')->setLabelAttribute('icon''barcode');
  53.         $menu->getChild('monsieurbiz.statistics')->addChild('sales_journal', [
  54.             'route' => 'app_admin_statistics_sales_index',
  55.         ])->setLabel('app.menu.admin.sales_journal')->setLabelAttribute('icon''cart');
  56.         // CONFIGURATION
  57.         $menu->getChild('configuration')->addChild('parameter', [
  58.             'route' => 'app_admin_parameter_index',
  59.         ])->setLabel('app.menu.admin.parameters')->setLabelAttribute('icon''users');
  60.         $menu->getChild('configuration')->addChild('shipping_delays', [
  61.             'route' => 'app_admin_shipping_delays_dispatch_index',
  62.         ])->setLabel('app.menu.admin.shipping_delays')->setLabelAttribute('icon''time');
  63.         // GESTION DE CONTENTU
  64.         $cms_menu $menu->getChild('bitbag_cms');
  65.         $menu->getChild('bitbag_cms')->addChild('partners', [
  66.             'route' => 'app_admin_partner_index',
  67.         ])->setLabel('app.menu.admin.partners')->setLabelAttribute('icon''users');
  68.         $menu->getChild('bitbag_cms')->addChild('email', [
  69.             'route' => 'app_admin_email_index',
  70.         ])->setLabel('app.menu.admin.emails')->setLabelAttribute('icon''users');
  71.         $menu->getChild('bitbag_cms')->addChild('form_response', [
  72.             'route' => 'app_admin_form_response_index',
  73.         ])->setLabel('app.menu.admin.form_response')->setLabelAttribute('icon''users');
  74.         $menu->getChild('bitbag_cms')->addChild('contact_subject', [
  75.             'route' => 'app_admin_contact_subject_index',
  76.         ])->setLabel('app.menu.admin.contact_subject')->setLabelAttribute('icon''users');
  77.         $menu->getChild('bitbag_cms')->addChild('page_meta', [
  78.             'route' => 'app_admin_page_meta_index',
  79.         ])->setLabel('app.ui.page_metas')->setLabelAttribute('icon''file');
  80.         $menu->getChild('bitbag_cms')->addChild('popup', [
  81.             'route' => 'app_admin_popup_index',
  82.         ])->setLabel('app.menu.admin.popups')->setLabelAttribute('icon''window restore');
  83.         $menu->getChild('bitbag_cms')->addChild('faq_category', [
  84.             'route' => 'app_admin_faq_category_index',
  85.         ])->setLabel('app.menu.admin.faq_category')->setLabelAttribute('icon''users');
  86.         $cms_menu->reorderChildren(['partners''contact_subject''email''form_response''blocks''media''pages''faq''faq_category''sections''page_meta''popup']);
  87.         // STATISTIQUES
  88.         $statistics_menu $menu->getChild('monsieurbiz.statistics');
  89.         $statistics_menu->addChild('no_result_search', [
  90.             'route' => 'app_admin_no_result_search_index',
  91.         ])->setLabel('app.menu.admin.no_result_search')->setLabelAttribute('icon''help');
  92.         // Newsletter
  93.         $menu->addChild('mailchimp')->setLabel('app.menu.admin.newsletters');
  94.         $menu->getChild('mailchimp')->addChild('newsletter', [
  95.             'route' => 'app_admin_newsletter_index',
  96.         ])->setLabel('app.menu.admin.newsletters')->setLabelAttribute('icon''mail');
  97.         $menu->getChild('mailchimp')->addChild('newsletter_scheduler', [
  98.             'route' => 'app_admin_newsletter_scheduler_index',
  99.         ])->setLabel('app.menu.admin.newsletters_scheduler')->setLabelAttribute('icon''time');
  100.         
  101.     }
  102. }