deblan.tv/vendor/trinity/src/Trinity/Bundle/AdminMenuBundle/Controller/DefaultController.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();
}
}