Newscoop\NewscoopBundle\Menu\Builder::mainMenu PHP Метод

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

public mainMenu ( $modern = false )
    public function mainMenu($modern = false)
    {
        if ($this->menu !== null) {
            return $this->menu;
        }
        $translator = $this->container->get('translator');
        $this->user = $this->container->getService('user')->getCurrentUser();
        $this->preparePrivileges();
        $menu = $this->factory->createItem('root');
        if ($modern) {
            $menu->setChildrenAttribute('class', 'nav navbar-nav');
        } else {
            $menu->setChildrenAttribute('class', 'navigation');
        }
        // change menu for blogger
        $blogService = $this->container->get('blog');
        if ($blogService->isBlogger($this->user)) {
            $menu->addChild('Blog', array('uri' => $this->generateZendRoute('admin'), 'attributes' => array('data-menu' => 'not-menu')));
            if (!$modern) {
                $menu = $this->decorateMenu($menu);
            }
            return $menu;
        }
        if ($modern) {
            $menu->addChild($translator->trans('Dashboard', array(), 'home'), array('uri' => $this->generateZendRoute('admin')));
            $menu->addChild($translator->trans('Content'), array('uri' => '#'))->setAttribute('dropdown', true)->setLinkAttribute('data-toggle', 'dropdown');
            $this->prepareContentMenu($menu[$translator->trans('Content')], $modern);
            $menu->addChild($translator->trans('Actions'), array('uri' => '#'))->setAttribute('dropdown', true)->setLinkAttribute('data-toggle', 'dropdown');
            $this->prepareActionsMenu($menu[$translator->trans('Actions')]);
            if ($this->showConfigureMenu) {
                $menu->addChild($translator->trans('Configure'), array('uri' => '#'))->setAttribute('dropdown', true)->setLinkAttribute('data-toggle', 'dropdown');
                $this->prepareConfigureMenu($menu[$translator->trans('Configure')]);
            }
            if ($this->showUserMenu) {
                $menu->addChild($translator->trans('Users'), array('uri' => '#'))->setAttribute('dropdown', true)->setLinkAttribute('data-toggle', 'dropdown');
                $this->prepareUsersMenu($menu[$translator->trans('Users')]);
            }
        } else {
            $menu->addChild($translator->trans('Dashboard', array(), 'home'), array('uri' => $this->generateZendRoute('admin')));
            $menu->addChild($translator->trans('Content'), array('uri' => '#'));
            $this->prepareContentMenu($menu[$translator->trans('Content')], $modern);
            $menu->addChild($translator->trans('Actions'), array('uri' => '#'));
            $this->prepareActionsMenu($menu[$translator->trans('Actions')]);
            if ($this->showConfigureMenu) {
                $menu->addChild($translator->trans('Configure'), array('uri' => '#'));
                $this->prepareConfigureMenu($menu[$translator->trans('Configure')]);
            }
            if ($this->showUserMenu) {
                $menu->addChild($translator->trans('Users'), array('uri' => '#'));
                $this->prepareUsersMenu($menu[$translator->trans('Users')]);
            }
        }
        $this->preparePluginsMenu($menu);
        // Extend menu with events
        $this->container->get('event_dispatcher')->dispatch('newscoop_newscoop.menu_configure', new ConfigureMenuEvent($this->factory, $menu, $this->container->get('router')));
        if (!$modern) {
            $menu = $this->decorateMenu($menu);
        }
        $this->menu = $menu;
        return $menu;
    }