src/Aqarmap/Bundle/NeighborhoodBundle/EventListener/ConfigureMenuEventSubscriber.php line 23

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\NeighborhoodBundle\EventListener;
  3. use Aqarmap\Bundle\MainBundle\Event\ConfigureMenuEvent;
  4. use Symfony\Component\DependencyInjection\ContainerInterface;
  5. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  6. use Symfony\Contracts\Translation\TranslatorInterface;
  7. class ConfigureMenuEventSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
  8. {
  9.     protected ContainerInterface $container;
  10.     protected TranslatorInterface $translator;
  11.     private AuthorizationCheckerInterface $authorizationChecker;
  12.     public function __construct(ContainerInterface $containerTranslatorInterface $translatorAuthorizationCheckerInterface $authorizationChecker)
  13.     {
  14.         $this->container $container;
  15.         $this->translator $translator;
  16.         $this->authorizationChecker $authorizationChecker;
  17.     }
  18.     public function onAdminSidebarMenuConfigure(ConfigureMenuEvent $event): void
  19.     {
  20.         $menu $event->getMenu();
  21.         if ($this->authorizationChecker->isGranted('ROLE_DISCUSSION')) {
  22.             $menu['know_more']
  23.                 ->addChild('discussions', ['route' => 'admin_discussion_list'])
  24.                 ->setLabel($this->translator->trans('layout.admin.discussion'))
  25.                 ->setExtra('icon''comment-alt')
  26.                 ->setExtra('position'71);
  27.             $menu['know_more']
  28.                 ->addChild('discussionCategories', ['route' => 'admin_discussion_categories_index'])
  29.                 ->setLabel($this->translator->trans('layout.admin.discussion_categories'))
  30.                 ->setExtra('icon''sitemap')
  31.                 ->setExtra('position'72);
  32.             $menu['know_more']
  33.                 ->addChild('comments', ['route' => 'admin_comment_list'])
  34.                 ->setLabel($this->translator->trans('layout.admin.comment'))
  35.                 ->setExtra('icon''comments')
  36.                 ->setExtra('position'73);
  37.         }
  38.     }
  39.     /**
  40.      * @return array<string, mixed>
  41.      */
  42.     public static function getSubscribedEvents(): array
  43.     {
  44.         return ['aqarmap.main.admin_sidebar_menu_configure' => 'onAdminSidebarMenuConfigure'];
  45.     }
  46. }