1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
namespace App\Twig;
use Doctrine\ORM\EntityManagerInterface;
use Prodigious\Sonata\MenuBundle\Manager\MenuManager;
use Twig\Extension\AbstractExtension;
class MenuExtension extends AbstractExtension
{
protected $em;
protected $mm;
public function __construct(EntityManagerInterface $em, MenuManager $mm)
{
$this->em = $em;
$this->mm = $mm;
}
/**
* {@inheritdoc}
*/
public function getFunctions()
{
return [
new \Twig_SimpleFunction('getMenuItemsFromAlias', [$this, 'getMenuItemsFromAlias']),
];
}
public function getMenuItemsFromAlias($alias)
{
$menu = $this->mm->loadByAlias($alias);
if (null == $menu) {
return null;
}
// getMenuItems($menu, $root = MenuManager::ITEM_CHILD, $status = MenuManager::STATUS_ALL)
$menuItems = $this->mm->getMenuItems($menu, true, true);
return $menuItems;
}
}