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;
}