Esempio n. 1
0
 /**
  * getGlobalContainer
  * @return PageContainer $objContainer
  * @author Thomas Schedler <*****@*****.**>
  */
 public function getGlobalContainer()
 {
     try {
         $this->arrContainer = array();
         $this->arrGenForms = array();
         $this->arrFallbackGenForms = array();
         $this->arrPageEntries = array();
         $counter = 0;
         $objContainer = new PageContainer();
         $objContainer->setContainerKey($this->getField('global_entry_point')->getValue());
         $objContainer->setContainerTitle($this->getField('global_entry_title')->getValue());
         $objContainer->setEntryNumber(12);
         $arrFilterOptions = array('CategoryId' => $this->getField('global_entry_category')->getValue(), 'LabelId' => $this->getField('global_entry_label')->getValue());
         $objEntries = $this->getModelFolders()->loadWebsiteGlobalTree($objContainer->getContainerKey(), $arrFilterOptions, $this->core->sysConfig->root_level_groups->product);
         $strBaseUrl = '';
         $intGlobaEntyPointId = $this->getField('global_entry_nav_point')->getValue();
         if ((int) $intGlobaEntyPointId > 0) {
             $objGlobaEntyPointData = $this->getModel()->load($intGlobaEntyPointId);
             if (count($objGlobaEntyPointData) == 1) {
                 $objGlobaEntyPoint = $objGlobaEntyPointData->current();
                 $objUrlData = $this->getModelUrls()->loadUrl($objGlobaEntyPoint->relationId, $objGlobaEntyPoint->version, $this->core->sysConfig->url_types->page);
                 if (count($objUrlData) > 0) {
                     $objUrl = $objUrlData->current();
                     $strBaseUrl = '/' . strtolower($objUrl->languageCode) . '/' . $objUrl->url;
                 }
             }
         }
         if (count($objEntries) > 0) {
             foreach ($objEntries as $objEntryData) {
                 $objEntry = new PageEntry();
                 $objEntry->setEntryId($objEntryData->id);
                 $objEntry->title = $objEntryData->globalTitle;
                 if ($strBaseUrl != '') {
                     $objEntry->url = $strBaseUrl . $objEntryData->url;
                 } else {
                     $objEntry->url = '/' . strtolower($objEntryData->languageCode) . '/' . $objEntryData->url;
                 }
                 if (isset($objEntryData->idLanguageFallbacks) && $objEntryData->idLanguageFallbacks > 0) {
                     $this->arrFallbackGenForms[$objEntryData->fallbackGenericFormId . '-' . $objEntryData->fallbackGenericFormVersion][$objEntryData->idLanguageFallbacks][] = $objEntryData->id;
                     if (isset($objEntryData->fallbackTitle) && $objEntryData->fallbackTitle != '') {
                         $objEntry->title = $objEntryData->fallbackTitle;
                     }
                 } else {
                     $this->arrGenForms[$objEntryData->genericFormId . '-' . $objEntryData->genericFormVersion][] = $objEntryData->id;
                 }
                 $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->id);
                 $this->arrPageEntries[$objEntryData->id] = $counter;
             }
             $this->arrContainer[$counter] =& $objContainer;
             $this->objModel = $this->getModelGlobals();
             /**
              * get data of instance tables
              */
             if (count($this->arrGenForms) > 0) {
                 $this->loadInstanceData('174,5');
             }
             /**
              * get fallback data of instance tables
              */
             if (count($this->arrFallbackGenForms) > 0) {
                 $this->loadFallbackInstanceData('174,5');
             }
             $this->getModel(true);
         }
         $objContainer->shuffleEntries();
         return $objContainer;
     } catch (Exception $exc) {
         $this->core->logger->err($exc);
     }
 }