Ojs\JournalBundle\Menu\MenuBuilder::fabMenu PHP Метод

fabMenu() публичный Метод

public fabMenu ( Knp\Menu\FactoryInterface $factory )
$factory Knp\Menu\FactoryInterface
    public function fabMenu(FactoryInterface $factory)
    {
        /**
         * @var Journal $journal
         * @var AuthorizationChecker $checker
         */
        $dispatcher = $this->container->get('event_dispatcher');
        $checker = $this->container->get('security.authorization_checker');
        $menu = $factory->createItem('root')->setChildrenAttribute('class', 'dropdown-menu dropdown-menu-right');
        $menu->addChild('dashboard', ['route' => 'dashboard', 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'dashboard']]);
        $journal = $this->container->get('ojs.journal_service')->getSelectedJournal();
        if ($journal) {
            $journalId = $journal->getId();
            if ($checker->isGranted('CREATE', $journal, 'articles')) {
                $menu->addChild('article.submit', ['route' => 'ojs_journal_submission_new', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'file-text']]);
            }
            if ($checker->isGranted('EDIT', $journal, 'userRole')) {
                $menu->addChild('title.users', ['route' => 'ojs_journal_user_index', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'key']]);
            }
            if ($checker->isGranted('EDIT', $journal, 'issues')) {
                $menu->addChild('title.issues', ['route' => 'ojs_journal_issue_index', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'plug']]);
            }
            if ($checker->isGranted('VIEW', $journal, 'articles')) {
                $menu->addChild('articles', ['route' => 'ojs_journal_submission_me', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'file-o']]);
            }
        }
        $menuEvent = new MenuEvent();
        $menuEvent->setMenuItem($menu);
        $dispatcher->dispatch(MenuEvents::FAB_MENU_INITIALIZED, $menuEvent);
        return $menuEvent->getMenuItem();
    }