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