/** * getPagesContainer * @return array $arrContainer * @author Cornelius Hansjakob <*****@*****.**> * @version 1.0 */ public function getPagesContainer() { try { $arrContainer = array(); $arrGenForms = array(); $arrPageEntries = array(); $counter = 0; $objMyMultiRegion = $this->getRegion(17); if ($objMyMultiRegion instanceof GenericElementRegion) { foreach ($objMyMultiRegion->RegionInstanceIds() as $intRegionInstanceId) { $objContainer = new PageContainer(); $objContainer->setContainerKey($objMyMultiRegion->getField('entry_nav_point')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerTitle($objMyMultiRegion->getField('entry_title')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryNumber($objMyMultiRegion->getField('entry_number')->getInstanceValue($intRegionInstanceId)); if ($objContainer->getContainerKey() > 0 && $objContainer->getEntryNumber() > 0) { $intEntryCategory = $objMyMultiRegion->getField('entry_category')->getInstanceValue($intRegionInstanceId); $intEntryLabel = $objMyMultiRegion->getField('entry_label')->getInstanceValue($intRegionInstanceId); $intEntrySortType = $objMyMultiRegion->getField('entry_sorttype')->getInstanceValue($intRegionInstanceId); $intEntrySortOrder = $objMyMultiRegion->getField('entry_sortorder')->getInstanceValue($intRegionInstanceId); $objContainer->setContainerSortType($intEntrySortType); $objContainer->setContainerSortOrder($intEntrySortOrder); $objEntries = $this->getFolderChildPages($objContainer->getContainerKey(), $intEntryCategory, $intEntryLabel, $objContainer->getEntryNumber(), $objContainer->getContainerSortType(), $objContainer->getContainerSortOrder()); if (count($objEntries) > 0) { foreach ($objEntries as $objEntryData) { $objEntry = new PageEntry(); $objEntry->setEntryId($objEntryData->idPage); $objEntry->title = $objEntryData->title; $objEntry->url = '/' . strtolower($objEntryData->languageCode) . '/' . $objEntryData->url; $objEntry->created = $objEntryData->pageCreated; $arrGenForms[$objEntryData->genericFormId . '-' . $objEntryData->version][] = $objEntryData->idPage; $arrPageEntries[$objEntryData->idPage] = $counter; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->idPage); } } } $arrContainer[$counter] = $objContainer; $counter++; } } /** * get data of instance tables */ if (count($arrGenForms) > 0) { foreach ($arrGenForms as $key => $arrPageIds) { $arrGenFormPageIds = array(); if (count($arrPageIds) > 0) { foreach ($arrPageIds as $value) { array_push($arrGenFormPageIds, $value); } } $objPageRowset = $this->objModelPages->loadsInstanceDataByIds($key, $arrGenFormPageIds); /** * overwrite page entries */ if (isset($objPageRowset) && count($objPageRowset) > 0) { foreach ($objPageRowset as $objPageRow) { if (array_key_exists($objPageRow->id, $arrPageEntries)) { if (array_key_exists($arrPageEntries[$objPageRow->id], $arrContainer)) { $objPageEntry = $arrContainer[$arrPageEntries[$objPageRow->id]]->getPageEntry('entry_' . $objPageRow->id); $objPageEntry->shortdescription = isset($objPageRow->shortdescription) ? $objPageRow->shortdescription : ''; $objPageEntry->description = isset($objPageRow->description) ? $objPageRow->description : ''; $objPageEntry->filename = isset($objPageRow->filename) ? $objPageRow->filename : ''; $objPageEntry->filetitle = isset($objPageRow->filetitle) ? $objPageRow->filetitle : ''; $arrContainer[$arrPageEntries[$objPageRow->id]]->addPageEntry($objPageEntry, 'entry_' . $objPageRow->id); } } } } } } return $arrContainer; } catch (Exception $exc) { $this->core->logger->err($exc); } }
/** * getGlobalContainers * @return PageContainer $objContainer * @author Thomas Schedler <*****@*****.**> */ public function getGlobalContainers($intRootLevelGroupId) { try { $this->arrContainer = array(); $this->arrGenForms = array(); $this->arrFallbackGenForms = array(); $this->arrPageEntries = array(); $counter = 0; $objMyMultiRegion = $this->getRegion(84); if ($objMyMultiRegion instanceof GenericElementRegion) { foreach ($objMyMultiRegion->RegionInstanceIds() as $intRegionInstanceId) { $objContainer = new PageContainer(); $objContainer->setContainerKey($objMyMultiRegion->getField('global_entry_point')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerTitle($objMyMultiRegion->getField('global_entry_title')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryNumber($objMyMultiRegion->getField('global_entry_number')->getInstanceValue($intRegionInstanceId)); $arrFilterOptions = array('CategoryId' => $objMyMultiRegion->getField('global_entry_category')->getInstanceValue($intRegionInstanceId), 'LabelId' => $objMyMultiRegion->getField('global_entry_label')->getInstanceValue($intRegionInstanceId), 'Number' => $objContainer->getEntryNumber(), 'SortType' => $objMyMultiRegion->getField('global_entry_sorttype')->getInstanceValue($intRegionInstanceId), 'SortOrder' => $objMyMultiRegion->getField('global_entry_sortorder')->getInstanceValue($intRegionInstanceId)); $objEntries = $this->getModelFolders()->loadWebsiteGlobalTree($objContainer->getContainerKey(), $arrFilterOptions, $intRootLevelGroupId); $strBaseUrl = ''; $intGlobaEntyPointId = $objMyMultiRegion->getField('global_entry_nav_point')->getInstanceValue($intRegionInstanceId); 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; } if (isset($this->arrPageEntries[$objEntryData->id])) { if (is_array($this->arrPageEntries[$objEntryData->id])) { array_push($this->arrPageEntries[$objEntryData->id], $counter); } else { $this->arrPageEntries[$objEntryData->id] = array($this->arrPageEntries[$objEntryData->id], $counter); } } else { $this->arrPageEntries[$objEntryData->id] = $counter; } $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->id); } $this->arrContainer[$counter] = $objContainer; $counter++; } } $this->objModel = $this->getModelGlobals(); /** * get data of instance tables */ if (count($this->arrGenForms) > 0) { $this->loadInstanceData('174,5,55'); } /** * get fallback data of instance tables */ if (count($this->arrFallbackGenForms) > 0) { $this->loadFallbackInstanceData('174,5,55'); } $this->getModel(true); } return $this->arrContainer; } catch (Exception $exc) { $this->core->logger->err($exc); } }