2 namespace TYPO3\CMS\FluidStyledContent\ViewHelpers\Menu;
40 use MenuViewHelperTrait;
49 $this->
registerArgument(
'as',
'string',
'Name of template variable which will contain selected pages',
true);
50 $this->
registerArgument(
'levelAs',
'string',
'Name of template variable which will contain current level',
false, null);
51 $this->
registerArgument(
'pageUids',
'array',
'Page UIDs of parent pages',
false, array());
52 $this->
registerArgument(
'entryLevel',
'integer',
'The entry level',
false, null);
53 $this->
registerArgument(
'maximumLevel',
'integer',
'Maximum level for rendering of nested menus',
false, 10);
54 $this->
registerArgument(
'includeNotInMenu',
'boolean',
'Include pages that are marked "hide in menu"?',
false,
false);
55 $this->
registerArgument(
'includeMenuSeparator',
'boolean',
'Include pages of the type "Menu separator"?',
false,
false);
65 $typoScriptFrontendController = $this->getTypoScriptFrontendController();
66 $as = $this->arguments[
'as'];
67 $pageUids = (array)$this->arguments[
'pageUids'];
68 $entryLevel = $this->arguments[
'entryLevel'];
69 $levelAs = $this->arguments[
'levelAs'];
70 $maximumLevel = $this->arguments[
'maximumLevel'];
71 $includeNotInMenu = (bool)$this->arguments[
'includeNotInMenu'];
72 $includeMenuSeparator = (bool)$this->arguments[
'includeMenuSeparator'];
74 $pageUids = $this->getPageUids($pageUids, $entryLevel);
75 $pages = $typoScriptFrontendController->sys_page->getMenu(
79 $this->getPageConstraints($includeNotInMenu, $includeMenuSeparator)
85 if (!$typoScriptFrontendController->register[
'ceMenuLevel_directory']) {
86 $typoScriptFrontendController->register[
'ceMenuLevel_directory'] = 1;
87 $typoScriptFrontendController->register[
'ceMenuMaximumLevel_directory'] = $maximumLevel;
89 $typoScriptFrontendController->register[
'ceMenuLevel_directory']++;
92 if ($typoScriptFrontendController->register[
'ceMenuLevel_directory'] > $typoScriptFrontendController->register[
'ceMenuMaximumLevel_directory']) {
99 if (!empty($levelAs)) {
100 $variables[$levelAs] = $typoScriptFrontendController->register[
'ceMenuLevel'];
102 $output = $this->renderChildrenWithVariables($variables);
104 $typoScriptFrontendController->register[
'ceMenuLevel_directory']--;
106 if ($typoScriptFrontendController->register[
'ceMenuLevel_directory'] === 0) {
107 unset($typoScriptFrontendController->register[
'ceMenuLevel_directory']);
108 unset($typoScriptFrontendController->register[
'ceMenuMaximumLevel_directory']);