/** * Render method * * @param integer $pageUid * @param boolean $includeHidden * @param boolean $showHiddenInMenu * @return string */ public function render($pageUid = NULL, $includeHidden = FALSE, $showHiddenInMenu = FALSE) { if (NULL === $pageUid || TRUE === empty($pageUid) || 0 === intval($pageUid)) { $pageUid = $GLOBALS['TSFE']->id; } $menu = $this->pageSelect->getMenu($pageUid, array(), '', $showHiddenInMenu); $pageHasSubPages = 0 < count($menu); if (TRUE === $pageHasSubPages) { return $this->renderThenChild(); } else { return $this->renderElseChild(); } }
/** * This method decides if the condition is TRUE or FALSE. It can be overriden in extending viewhelpers to adjust functionality. * * @param array $arguments ViewHelper arguments to evaluate the condition for this ViewHelper, allows for flexiblity in overriding this method. * @return bool */ protected static function evaluateCondition($arguments = NULL) { $pageUid = $arguments['pageUid']; $includeHidden = $arguments['includeHidden']; $showHiddenInMenu = $arguments['showHiddenInMenu']; if (NULL === $pageUid || TRUE === empty($pageUid) || 0 === intval($pageUid)) { $pageUid = $GLOBALS['TSFE']->id; } if (self::$pageSelect === NULL) { $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); self::$pageSelect = $objectManager->get('FluidTYPO3\\Vhs\\Service\\PageSelectService'); } $menu = self::$pageSelect->getMenu($pageUid, array(), '', $showHiddenInMenu); $pageHasSubPages = 0 < count($menu); return TRUE === $pageHasSubPages; }
/** * @param $pageUid * @param string $where * @return array */ public function getMenu($pageUid, $where = '') { $excludePages = $this->processPagesArgument($this->arguments['excludePages']); $showHiddenInMenu = (bool) $this->arguments['showHiddenInMenu']; $allowedDoktypeList = $this->allowedDoktypeList(); $menuData = $this->pageSelect->getMenu($pageUid, $excludePages, $where, $showHiddenInMenu, FALSE, $allowedDoktypeList); return $menuData; }
/** * @param $pageUid * @param string $where * @return array */ public function getMenu($pageUid, $where = '') { $excludePages = $this->processPagesArgument($this->arguments['excludePages']); $showHiddenInMenu = (bool) $this->arguments['showHiddenInMenu']; $allowedDoktypeList = $this->allowedDoktypeList(); $menuData = $this->pageSelect->getMenu($pageUid, $excludePages, $where, $showHiddenInMenu, FALSE, $allowedDoktypeList); foreach ($menuData as $key => $page) { if (TRUE === $this->pageSelect->hidePageForLanguageUid($page['uid'], $GLOBALS['TSFE']->sys_language_uid)) { unset($menuData[$key]); } } return $menuData; }