<?php namespace NL\NlMenubuilder\ViewHelpers\Menu\Controller; use NL\NlMenubuilder\Domain\Model\Menu; use NL\NlMenubuilder\Domain\Repository\MenuRepository; use NL\NlMenubuilder\Service\MenuSecurityService; use TYPO3\CMS\Fluid\Core\Widget\AbstractWidgetController; class RenderController extends AbstractWidgetController { /** * @var MenuRepository */ protected $menuRepository; /** * @var MenuSecurityService */ protected $menuSecurityService; /** * Inject menu repository * * @param MenuRepository $repository */ public function injectMenuRepository(MenuRepository $repository): void { $this->menuRepository = $repository; } /** * @param MenuSecurityService $service */ public function injectMenuSecurityService(MenuSecurityService $service): void { $this->menuSecurityService = $service; } /** * @return string */ public function indexAction(): string { /** @var Menu $menu */ $menu = $this->menuRepository->findByIdentifier($this->widgetConfiguration['uid']); if (!is_null($menu) && !$this->widgetConfiguration['disableSecurityCheck']) { $this->menuSecurityService->applySecurityCheck($menu); } $this->view->assign('menu', $menu); return $this->view->render($menu ? $menu->getTemplate() : Menu::DEFAULT_TEMPLATE); } }