/** * addXmlUrlsetChilds * @param NavigationItem|NavigationTree $objItem * @param string $strUrl * @param string $strLanguageCode * @return void */ public function addXmlUrlsetChilds($objItem, $strUrl, $strLanguageCode, $intLevel = 0) { if ($objItem->getUrl() != '') { $strItemUrl = strpos($objItem->getUrl(), 'http://') !== false ? str_replace('&', '&', $objItem->getUrl()) : $strUrl . str_replace('&', '&', $objItem->getUrl()); if (!array_search($strItemUrl, $this->arrUrls)) { $this->arrUrls[] = $strItemUrl; $objUrl = $this->objDoc->createElement('url'); $objUrl->appendChild($this->objDoc->createElement('loc', $strItemUrl)); if ($objItem->getUrl() == '/' . $strLanguageCode . '/') { $objUrl->appendChild($this->objDoc->createElement('lastmod', date('Y-m-d'))); } else { if ($objItem->getChanged('', true) !== null) { $objUrl->appendChild($this->objDoc->createElement('lastmod', $objItem->getChanged('Y-m-d'))); } } if ($objItem->getUrl() == '/' . $strLanguageCode . '/') { $objUrl->appendChild($this->objDoc->createElement('changefreq', 'daily')); $objUrl->appendChild($this->objDoc->createElement('priority', '0.8')); } $objUrl = $this->objUrlset->appendChild($objUrl); } } if ($objItem instanceof NavigationTree) { foreach ($objItem as $objChild) { $this->addXmlUrlsetChilds($objChild, $strUrl, $strLanguageCode, $intLevel + 1); } } }
/** * 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); } }