87 lines
2.6 KiB
PHP
87 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace Trinity\Bundle\AdminMenuBundle\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
|
use Trinity\Bundle\AdminMenuBundle\Menu\MenuFactory;
|
|
use Trinity\Bundle\AdminMenuBundle\Menu\ListRenderer;
|
|
#use Knp\Menu\Renderer\ListRenderer;
|
|
use Trinity\Bundle\AdminMenuBundle\Menu\ConfigurationTransformer;
|
|
use Trinity\Bundle\ContentManagerBundle\Model\NavQuery;
|
|
use Knp\Menu\Matcher\Matcher;
|
|
|
|
class DefaultController extends Controller
|
|
{
|
|
protected $router;
|
|
protected $rac;
|
|
protected $factory;
|
|
protected $config;
|
|
|
|
protected function init()
|
|
{
|
|
$this->rac = $this->get('trinity.security.route_access_control');
|
|
$this->router = $this->container->get('router');
|
|
$this->factory = new MenuFactory();
|
|
$this->config = $this->container->getParameter('trinity_admin_menu.menu');
|
|
}
|
|
|
|
public static function getCmsMenu()
|
|
{
|
|
$navs = NavQuery::create()->orderByName()->find();
|
|
|
|
$item = array(
|
|
'title' => "Tree management",
|
|
'route_name' => 'TrinityContentManagerBundleNodeAdmin_index',
|
|
'route_params' => array(),
|
|
'test_is_granted' => true,
|
|
'icon' => '/bundles/trinityadmin/img/icon11.png',
|
|
'items' => array(),
|
|
);
|
|
|
|
foreach ($navs as $nav) {
|
|
$item['items'][] = array(
|
|
'title' => $nav->getTitle(),
|
|
'route_name' => 'TrinityContentManagerBundleNodeAdmin_index',
|
|
'icon' => '/bundles/trinityadmin/img/content-tree.png',
|
|
'route_params' => array(
|
|
'nav_id' => $nav->getId(),
|
|
),
|
|
'test_is_granted' => true,
|
|
);
|
|
}
|
|
|
|
return $item;
|
|
}
|
|
|
|
/**
|
|
* @Template()
|
|
*/
|
|
public function mainMenuAction()
|
|
{
|
|
$this->init();
|
|
|
|
$menu = $this->getMenu();
|
|
$renderer = new ListRenderer(new Matcher());
|
|
|
|
$menu->setChildrenAttributes(array('class' => 'sf-menu'));
|
|
|
|
return $this->render(
|
|
$this->config['template'],
|
|
array(
|
|
'menu_render' => $renderer->render($menu),
|
|
'menu' => $menu,
|
|
'logo' => $this->config['logo'],
|
|
'route_name' => $this->config['route_name'],
|
|
)
|
|
);
|
|
}
|
|
|
|
public function getMenu()
|
|
{
|
|
$transformer = new ConfigurationTransformer($this->rac, $this->router, $this->factory, $this->config);
|
|
|
|
return $transformer->getMenu();
|
|
}
|
|
}
|