getMenu() public method

public getMenu ( integer $pageUid, array $excludePages = [], boolean $includeNotInMenu = false, boolean $includeMenuSeparator = false, boolean $disableGroupAccessCheck = false ) : array
$pageUid integer
$excludePages array
$includeNotInMenu boolean
$includeMenuSeparator boolean
$disableGroupAccessCheck boolean
return array
コード例 #1
0
 /**
  * @param array $arguments
  * @return boolean
  */
 protected static function evaluateCondition($arguments = null)
 {
     $pageUid = $arguments['pageUid'];
     $includeHiddenInMenu = (bool) $arguments['includeHiddenInMenu'];
     $includeAccessProtected = (bool) $arguments['includeAccessProtected'];
     if (null === $pageUid || true === empty($pageUid) || 0 === (int) $pageUid) {
         $pageUid = $GLOBALS['TSFE']->id;
     }
     if (self::$pageService === null) {
         $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
         self::$pageService = $objectManager->get('FluidTYPO3\\Vhs\\Service\\PageService');
     }
     $menu = self::$pageService->getMenu($pageUid, [], $includeHiddenInMenu, false, $includeAccessProtected);
     return 0 < count($menu);
 }
コード例 #2
0
 /**
  * @param array $pages
  * @return array
  */
 public function parseMenu(array $pages)
 {
     $count = 0;
     $total = count($pages);
     $processedPages = [];
     foreach ($pages as $index => $page) {
         if (true === $this->pageService->hidePageForLanguageUid($page)) {
             continue;
         }
         $count++;
         $class = [];
         $originalPageUid = $page['uid'];
         $showAccessProtected = (bool) $this->arguments['showAccessProtected'];
         if ($showAccessProtected) {
             $pages[$index]['accessProtected'] = $this->pageService->isAccessProtected($page);
             if (true === $pages[$index]['accessProtected']) {
                 $class[] = $this->arguments['classAccessProtected'];
             }
             $pages[$index]['accessGranted'] = $this->pageService->isAccessGranted($page);
             if (true === $pages[$index]['accessGranted'] && true === $this->pageService->isAccessProtected($page)) {
                 $class[] = $this->arguments['classAccessGranted'];
             }
         }
         $targetPage = $this->pageService->getShortcutTargetPage($page);
         if ($targetPage !== null) {
             if ($this->pageService->shouldUseShortcutTarget($this->arguments)) {
                 $pages[$index] = $targetPage;
             }
             if ($this->pageService->shouldUseShortcutUid($this->arguments)) {
                 $page['uid'] = $targetPage['uid'];
             }
         }
         if (true === $this->pageService->isActive($originalPageUid, $showAccessProtected)) {
             $pages[$index]['active'] = true;
             $class[] = $this->arguments['classActive'];
         }
         if (true === $this->pageService->isCurrent($page['uid'])) {
             $pages[$index]['current'] = true;
             $class[] = $this->arguments['classCurrent'];
         }
         if (0 < count($this->pageService->getMenu($originalPageUid))) {
             $pages[$index]['hasSubPages'] = true;
             //TODO: Remove deprecated argument in next major version
             $class[] = $this->arguments[$this->hasArgument('classHasSubpages') ? 'classHasSubpages' : 'classHasSubPages'];
         }
         if (1 === $count) {
             $class[] = $this->arguments['classFirst'];
         }
         if ($count === $total) {
             $class[] = $this->arguments['classLast'];
         }
         $pages[$index]['class'] = implode(' ', $class);
         $pages[$index]['linktext'] = $this->getItemTitle($pages[$index]);
         $forceAbsoluteUrl = $this->arguments['forceAbsoluteUrl'];
         $pages[$index]['link'] = $this->pageService->getItemLink($page, $forceAbsoluteUrl);
         $processedPages[$index] = $pages[$index];
     }
     return $processedPages;
 }