FluidTYPO3\Vhs\ViewHelpers\Menu\AbstractMenuViewHelper::parseMenu PHP Method

parseMenu() public method

public parseMenu ( array $pages ) : array
$pages array
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;
    }