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);
     // }
 }
Esempio n. 3
0
 /**
  * @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;
 }