Пример #1
0
 /**
  * addGlobalTree
  * @param NavigationTree $objNavigationTree
  * @author Thomas Schedler <*****@*****.**>
  */
 private function addGlobalTree(NavigationTree &$objNavigationTree, $intPageTypeId, $arrFilter, $intDepth = 99)
 {
     try {
         $arrPageTypeRootLevelGroupIds = array($this->core->sysConfig->page_types->product_tree->id => $this->core->sysConfig->root_level_groups->product, $this->core->sysConfig->page_types->press_area->id => $this->core->sysConfig->root_level_groups->press, $this->core->sysConfig->page_types->courses->id => $this->core->sysConfig->root_level_groups->course, $this->core->sysConfig->page_types->events->id => $this->core->sysConfig->root_level_groups->event);
         $objNavigationData = $this->getModelFolders()->loadWebsiteGlobalTree($arrFilter['ParentId'], $arrFilter, $arrPageTypeRootLevelGroupIds[$intPageTypeId], $intDepth);
         if (count($objNavigationData) > 0) {
             $intSortTypeId = $this->objPage instanceof Page ? $this->objPage->getFieldValue('entry_sorttype') : 0;
             $intTreeId = 0;
             foreach ($objNavigationData as $objNavigationItem) {
                 if ($intTreeId != $objNavigationItem->idFolder) {
                     /**
                      * add to parent tree
                      */
                     if (isset($objTree) && is_object($objTree) && $objTree instanceof NavigationTree) {
                         $objNavigationTree->addToParentTree($objTree, 'tree_' . $objTree->getId());
                     }
                     $objTree = new NavigationTree();
                     $objTree->setTitle($objNavigationItem->folderTitle);
                     $objTree->setId($objNavigationItem->idFolder);
                     $objTree->setTypeId($objNavigationItem->idGlobalTypes);
                     $objTree->setParentId($objNavigationItem->parentId == $arrFilter['ParentId'] ? $objNavigationTree->getId() : $objNavigationItem->parentId);
                     $objTree->setItemId($objNavigationItem->folderId);
                     $objTree->setChanged($objNavigationItem->changed);
                     if ($intSortTypeId == $this->core->sysConfig->sort->types->alpha->id) {
                         $objTree->setOrder($objNavigationItem->folderTitle);
                     } else {
                         $objTree->setOrder($objNavigationItem->folderOrder);
                     }
                     $objTree->setUrl($objNavigationTree->getUrl() . $objNavigationItem->url);
                     $intTreeId = $objNavigationItem->idFolder;
                 }
                 if ($objNavigationItem->globalId != null) {
                     if ($objNavigationItem->isStartGlobal == 1) {
                         $objTree->setUrl($objNavigationTree->getUrl() . $objNavigationItem->url);
                     } else {
                         $objItem = new NavigationItem();
                         $objItem->setTitle($objNavigationItem->globalTitle);
                         $objItem->setUrl($objNavigationTree->getUrl() . $objNavigationItem->url);
                         $objItem->setId($objNavigationItem->idGlobal);
                         $objTree->setTypeId($objNavigationItem->idGlobalTypes);
                         $objTree->setParentId($objNavigationItem->parentId == $arrFilter['ParentId'] ? $objNavigationTree->getId() : $objNavigationItem->parentId);
                         $objItem->setItemId($objNavigationItem->globalId);
                         $objItem->setChanged($objNavigationItem->changed);
                         if ($intSortTypeId == $this->core->sysConfig->sort->types->alpha->id) {
                             $objItem->setOrder($objNavigationItem->globalTitle);
                         } else {
                             $objItem->setOrder($objNavigationItem->globalOrder);
                         }
                         $objTree->addItem($objItem, 'item_' . $objItem->getId());
                     }
                 }
             }
             /**
              * add to parent tree
              */
             if (isset($objTree) && is_object($objTree) && $objTree instanceof NavigationTree) {
                 $objNavigationTree->addToParentTree($objTree, 'tree_' . $objTree->getId());
             }
         }
     } catch (Exception $exc) {
         $this->core->logger->err($exc);
     }
 }