Skip to content
Snippets Groups Projects
RenderController.php 1.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?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);
        }
    }