52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Trinity\Bundle\AdminBreadcrumbsBundle\Twig\Extension;
|
|
|
|
use \Trinity\Bundle\AdminBreadcrumbsBundle\Model\BreadcrumbManager;
|
|
|
|
class BreadcrumbExtension extends \Twig_Extension
|
|
{
|
|
private $environment;
|
|
private $resources;
|
|
|
|
protected $breadcrumbManager;
|
|
|
|
public function __construct(BreadcrumbManager $BreadcrumbManager)
|
|
{
|
|
$this->breadcrumbManager = $BreadcrumbManager;
|
|
}
|
|
|
|
public function initRuntime(\Twig_Environment $environment)
|
|
{
|
|
$this->environment = $environment;
|
|
}
|
|
|
|
public function getName()
|
|
{
|
|
return 'breadcrumb_extension';
|
|
}
|
|
|
|
public function getFunctions()
|
|
{
|
|
return array(
|
|
'render_admin_breadcrumb' => new \Twig_Function_Method($this, 'renderAdminBreadcrumb', array('is_safe' => array('html'))),
|
|
);
|
|
}
|
|
|
|
public function renderAdminBreadcrumb()
|
|
{
|
|
$breadcrumb = $this->breadcrumbManager->get();
|
|
|
|
return $this->render('TrinityAdminBreadcrumbsBundle:Utils:breadcrumb.html.twig',array('breadcrumb' => $breadcrumb));
|
|
}
|
|
|
|
public function render($template, array $parameters = array())
|
|
{
|
|
if (!isset($this->resources[$template])) {
|
|
$this->resources[$template] = $this->environment->loadTemplate($template);
|
|
}
|
|
|
|
return $this->resources[$template]->render($parameters);
|
|
}
|
|
}
|