<?php
/**
* project: Pimcore
* User: EBiermann
* Year: 2022
*/
namespace App\Twig\Extension;
use Pimcore\Model\Document;
use Pimcore\Twig\Extension\Templating\Navigation;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class NavigationExtension extends AbstractExtension
{
/**
* @var Navigation
*/
protected $navigationHelper;
/**
* @param Navigation $navigationHelper
*/
public function __construct(Navigation $navigationHelper)
{
$this->navigationHelper = $navigationHelper;
}
/**
* @return array|TwigFunction[]
*/
public function getFunctions()
{
return [
new TwigFunction('custom_build_nav', [$this, 'getCustomNavigation'])
];
}
/**
* @param Document $document
* @param Document $startNode
*
* @return \Pimcore\Navigation\Container
* @throws \Exception
*/
public function getCustomNavigation(Document $document, Document $startNode)
{
$navigation = $this->navigationHelper->build([
'active' => $document,
'root' => $startNode,
'pageCallback' => function ($page, $document) {
$page->setCustomSetting('navigationItemIcon', $document->getProperty('navigation-item-icon'));
$page->setCustomSetting('navigationItemVirtual', $document->getProperty('navigation-item-virtual'));
//$page->setCustomSetting('navigationHideMobile', $document->getProperty('navigation-hide-mobile'));
}
]);
return $navigation;
}
}