/** * @param PageModel $currentPage * * @return NavigationItem[] * * @throws \RuntimeException */ public function findNavigationItems(PageModel $currentPage) { $rootPages = $this->pageFinder->findRootPagesForPage($currentPage, false, false); $navigationItems = $this->createNavigationItemsForRootPages($rootPages); $this->setTargetPageForNavigationItems($navigationItems, $rootPages, $this->pageFinder->findAssociatedForPage($currentPage)); foreach ($navigationItems as $k => $item) { if (!$item->hasTargetPage()) { $item->setTargetPage($this->pageFinder->findAssociatedParentForLanguage($currentPage, $item->getLanguageTag()), false); } } $this->languageText->orderNavigationItems($navigationItems); return array_values($navigationItems); }