2 namespace TYPO3\CMS\FluidStyledContent\ViewHelpers\Menu;
38 use MenuViewHelperTrait;
45 $this->
registerArgument(
'as',
'string',
'Name of template variable which will contain selected pages',
true);
46 $this->
registerArgument(
'levelAs',
'string',
'Name of template variable which will contain current level',
false, null);
47 $this->
registerArgument(
'pageUids',
'array',
'Page UIDs of parent pages',
false, array());
48 $this->
registerArgument(
'entryLevel',
'integer',
'The entry level',
false, null);
49 $this->
registerArgument(
'maximumLevel',
'integer',
'Maximum level for rendering of nested menus',
false, 10);
50 $this->
registerArgument(
'includeNotInMenu',
'boolean',
'Include pages that are marked "hide in menu"?',
false,
false);
51 $this->
registerArgument(
'includeMenuSeparator',
'boolean',
'Include pages of the type "Menu separator"?',
false,
false);
62 $typoScriptFrontendController = $this->getTypoScriptFrontendController();
63 $as = $this->arguments[
'as'];
64 $pageUids = (array)$this->arguments[
'pageUids'];
65 $entryLevel = $this->arguments[
'entryLevel'];
66 $levelAs = $this->arguments[
'levelAs'];
67 $maximumLevel = $this->arguments[
'maximumLevel'];
68 $includeNotInMenu = (bool)$this->arguments[
'includeNotInMenu'];
69 $includeMenuSeparator = (bool)$this->arguments[
'includeMenuSeparator'];
71 $pageUids = $this->getPageUids($pageUids, $entryLevel);
72 $pages = $typoScriptFrontendController->sys_page->getMenuForPages(
76 $this->getPageConstraints($includeNotInMenu, $includeMenuSeparator)
82 if (!$typoScriptFrontendController->register[
'ceMenuLevel_list']) {
83 $typoScriptFrontendController->register[
'ceMenuLevel_list'] = 1;
84 $typoScriptFrontendController->register[
'ceMenuMaximumLevel_list'] = $maximumLevel;
86 $typoScriptFrontendController->register[
'ceMenuLevel_list']++;
89 if ($typoScriptFrontendController->register[
'ceMenuLevel_list'] > $typoScriptFrontendController->register[
'ceMenuMaximumLevel_list']) {
96 if (!empty($levelAs)) {
97 $variables[$levelAs] = $typoScriptFrontendController->register[
'ceMenuLevel_list'];
99 $output = $this->renderChildrenWithVariables($variables);
101 $typoScriptFrontendController->register[
'ceMenuLevel_list']--;
103 if ($typoScriptFrontendController->register[
'ceMenuLevel_list'] === 0) {
104 unset($typoScriptFrontendController->register[
'ceMenuLevel_list']);
105 unset($typoScriptFrontendController->register[
'ceMenuMaximumLevel_list']);