public function onNavigationItemChildrenRequested(NavigationItem $oNavigationItem) { $mIdentifier = $oNavigationItem->getIdentifier(); if ($oNavigationItem instanceof PageNavigationItem && $oNavigationItem->getMe()->isOfType('journal')) { $this->addChildrenToPageNavigationItem($oNavigationItem); } else { if ($oNavigationItem instanceof VirtualNavigationItem) { $this->addChildrenToVirtualNavigationItem($oNavigationItem); } } }
public function onNavigationItemChildrenRequested(NavigationItem $oNavigationItem) { if (!($oNavigationItem instanceof PageNavigationItem && $oNavigationItem->getIdentifier() === self::PARENT_PAGE_IDENTIFIER)) { return; } $aDocumentationPartKeys = array(); foreach (DocumentationProviderTypeModule::completeMetaData() as $sPart => $aLanguages) { if (isset($aLanguages[Session::language()])) { $aDocumentationPartKeys[$sPart] = false; } } foreach (DocumentationPartQuery::create()->filterByLanguageId(Session::language())->select('Key')->find() as $sPart) { $aDocumentationPartKeys[$sPart] = true; } ksort($aDocumentationPartKeys); $aDocumentations = DocumentationsFrontendModule::listQuery()->select(array('Key', 'Name', 'Title', 'NameSpace'))->find(); foreach ($aDocumentations as $aParams) { $aConfiguredParts = array(); foreach ($aDocumentationPartKeys as $sKey => $bIsInternal) { if (StringUtil::startsWith($sKey, $aParams['NameSpace'] . '.')) { $aConfiguredParts[$sKey] = $bIsInternal; unset($aDocumentationPartKeys[$sKey]); } else { if ($sKey > $aParams['NameSpace'] . '.') { break; } } } $sTitle = $aParams['Title'] != null ? $aParams['Title'] : $aParams['Name']; $oNavItem = new VirtualNavigationItem(self::ITEM_TYPE, $aParams['Key'], 'Dokumentation ' . $sTitle, $aParams['Name'], $aConfiguredParts); $oNavigationItem->addChild($oNavItem); } // if(count($aDocumentationPartKeys) > 0) { // $oNavItem = new VirtualNavigationItem(self::ITEM_TYPE_UNCATEGORIZED, 'uncategorized', TranslationPeer::getString('documentations.uncategorized'), null, $aDocumentationPartKeys); // $oNavigationItem->addChild($oNavItem); // } }
/** * @param int $iLevel level of current NavigationItem (expensive to calculate from the NavigationItem alone) * @param BooleanParser $oBooleanParser the BooleanParser instance holding information about the current NavigationItem’s properties] * @param NavigationItem $oNavigationItem the current navigation item * @return string parsed navigation */ private function getConfigForPage($iLevel, $oBooleanParser, $oNavigationItem) { $aConfigToCheck = @$this->aConfig[$iLevel]; if ($aConfigToCheck === null) { if (!isset($this->aConfig['all'])) { return null; } $aConfigToCheck = $this->aConfig['all']; } foreach ($aConfigToCheck as $aConfig) { if (isset($aConfig['page_name']) && $aConfig['page_name'] !== $oNavigationItem->getName()) { continue; } if (isset($aConfig['page_identifier']) && $aConfig['page_identifier'] !== $oNavigationItem->getIdentifier()) { continue; } if (isset($aConfig['page_type']) && $aConfig['page_type'] !== $oNavigationItem->getType()) { continue; } if (!isset($aConfig['on']) || $oBooleanParser->parse($aConfig['on'])) { return $aConfig; } } return null; }