/** * 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); } }
/** * getSubPageContainer * @param string $strBaseUrl * @return PageContainer $objContainer * @author Thomas Schedler <*****@*****.**> */ public function getSubPageContainer() { try { $this->arrContainer = array(); $this->arrGenForms = array(); $this->arrPageEntries = array(); $counter = 0; $objContainer = new PageContainer(); $objContainer->setContainerKey($this->getParentId()); $objContainer->setEntryNumber(5); $objEntries = $this->getFolderChildPages($objContainer->getContainerKey()); 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->showInNavigation = $objEntryData->showInNavigation; $this->arrGenForms[$objEntryData->genericFormId . '-' . $objEntryData->version][] = $objEntryData->idPage; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->idPage); $this->arrPageEntries[$objEntryData->idPage] = $counter; } $this->arrContainer[$counter] =& $objContainer; /** * get data of instance tables */ if (count($this->arrGenForms) > 0) { $this->loadInstanceData(); } } return $objContainer; } catch (Exception $exc) { $this->core->logger->err($exc); } }