/**
  * 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);
     }
 }