/** * getOverviewContainer * @return array $arrContainer * @author Cornelius Hansjakob <*****@*****.**> * @version 1.0 */ public function getOverviewContainer() { try { $arrContainer = array(); $arrGenForms = array(); $arrPageEntries = array(); $arrPageIds = array(); $counter = 0; $objMyMultiRegion = $this->getRegion(15); //15 is the default overview block region if ($objMyMultiRegion instanceof GenericElementRegion) { foreach ($objMyMultiRegion->RegionInstanceIds() as $intRegionInstanceId) { $objContainer = new PageContainer(); $objContainer->setContainerKey($objMyMultiRegion->getField('entry_category')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerTitle($objMyMultiRegion->getField('entry_title')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryNumber($objMyMultiRegion->getField('entry_number')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryViewType($objMyMultiRegion->getField('entry_viewtype')->getInstanceValue($intRegionInstanceId)); if ($objContainer->getEntryNumber() > 0) { $objContainer->setContainerLabel($objMyMultiRegion->getField('entry_label')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerSortType($objMyMultiRegion->getField('entry_sorttype')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerSortOrder($objMyMultiRegion->getField('entry_sortorder')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerDepth($objMyMultiRegion->getField('entry_depth')->getInstanceValue($intRegionInstanceId)); $objEntries = $this->getOverviewPages($objContainer->getContainerKey(), $objContainer->getContainerLabel(), $objContainer->getEntryNumber(), $objContainer->getContainerSortType(), $objContainer->getContainerSortOrder(), $objContainer->getContainerDepth(), $arrPageIds); if (count($objEntries) > 0) { foreach ($objEntries as $objEntryData) { $objEntry = new PageEntry(); if ($objEntryData->idPageTypes == $this->core->sysConfig->page_types->link->id) { $objEntry->setEntryId($objEntryData->plId); $objEntry->title = $objEntryData->title; $objEntry->url = '/' . strtolower($objEntryData->languageCode) . '/' . $objEntryData->plUrl; $arrGenForms[$objEntryData->plGenericFormId . '-' . $objEntryData->plVersion][] = $objEntryData->plId; $arrPageEntries[$objEntryData->plId] = $counter; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->plId); } else { $objEntry->setEntryId($objEntryData->id); $objEntry->title = $objEntryData->title; $objEntry->url = '/' . strtolower($objEntryData->languageCode) . '/' . $objEntryData->url; $arrGenForms[$objEntryData->genericFormId . '-' . $objEntryData->version][] = $objEntryData->id; $arrPageEntries[$objEntryData->id] = $counter; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->id); } array_push($arrPageIds, $objEntryData->id); } } } $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); } }
/** * getOverviewContainer * @return array $arrContainer * @author Cornelius Hansjakob <*****@*****.**> * @version 1.0 */ public function getOverviewContainer($blnOnlyPages = false, $blnOnlyShowInNavigation = false) { try { $this->arrContainer = array(); $this->arrGenForms = array(); $this->arrFallbackGenForms = array(); $this->arrPageEntries = array(); $arrPageIds = array(); $counter = 0; $objMyMultiRegion = $this->getRegion(15); //15 is the default overview block region if ($objMyMultiRegion instanceof GenericElementRegion) { foreach ($objMyMultiRegion->RegionInstanceIds() as $intRegionInstanceId) { $objContainer = new PageContainer(); $objContainer->setContainerKey($objMyMultiRegion->getField('entry_category')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerTitle($objMyMultiRegion->getField('entry_title')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryNumber($objMyMultiRegion->getField('entry_number')->getInstanceValue($intRegionInstanceId)); $objContainer->setEntryViewType($objMyMultiRegion->getField('entry_viewtype')->getInstanceValue($intRegionInstanceId)); if ($objContainer->getEntryNumber() > 0) { $objContainer->setContainerLabel($objMyMultiRegion->getField('entry_label')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerSortType($objMyMultiRegion->getField('entry_sorttype')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerSortOrder($objMyMultiRegion->getField('entry_sortorder')->getInstanceValue($intRegionInstanceId)); $objContainer->setContainerDepth($objMyMultiRegion->getField('entry_depth')->getInstanceValue($intRegionInstanceId)); /** * override category and label filter with the parent page settings */ if ($this->objParentPage instanceof Page) { if ($this->objParentPage->getField('entry_category') !== null && (int) $this->objParentPage->getFieldValue('entry_category') > 0) { $objContainer->setContainerKey($this->objParentPage->getFieldValue('entry_category')); } if ($this->objParentPage->getField('entry_label') !== null && (int) $this->objParentPage->getFieldValue('entry_label') > 0) { $objContainer->setContainerLabel($this->objParentPage->getFieldValue('entry_label')); } if ($this->objParentPage->getField('entry_sorttype') !== null && (int) $this->objParentPage->getFieldValue('entry_sorttype') > 0) { $objContainer->setContainerSortType($this->objParentPage->getFieldValue('entry_sorttype')); } } $objEntries = $this->getOverviewPages($objContainer->getContainerKey(), $objContainer->getContainerLabel(), $objContainer->getEntryNumber(), $objContainer->getContainerSortType(), $objContainer->getContainerSortOrder(), $objContainer->getContainerDepth(), $arrPageIds, $blnOnlyPages, $blnOnlyShowInNavigation); if (count($objEntries) > 0) { foreach ($objEntries as $objEntryData) { $objEntry = new PageEntry(); $objEntry->destinationId = isset($objEntryData->idDestination) ? $objEntryData->idDestination : 0; $objEntry->relationId = isset($objEntryData->relationId) ? $objEntryData->relationId : false; $objEntry->parentId = isset($objEntryData->plParentId) ? $objEntryData->plParentId : false; $objEntry->plId = isset($objEntryData->plId) ? $objEntryData->plId : false; $objEntry->pageTypeId = isset($objEntryData->idPageTypes) ? $objEntryData->idPageTypes : false; $objEntry->target = isset($objEntryData->target) ? $objEntryData->target : false; if (isset($objEntryData->idPageTypes) && $objEntryData->idPageTypes == $this->core->sysConfig->page_types->link->id) { $objEntry->setEntryId($objEntryData->plId); $objEntry->title = $objEntryData->title; $objEntry->url = '/' . strtolower($objEntryData->languageCode) . '/' . $objEntryData->plUrl; if (isset($objEntryData->idLanguageFallbacks) && $objEntryData->idLanguageFallbacks > 0) { if (isset($objEntryData->fallbackTitle) && $objEntryData->fallbackTitle != '') { $objEntry->title = $objEntryData->fallbackTitle; } } $this->arrGenForms[$objEntryData->plGenericFormId . '-' . $objEntryData->plVersion][] = $objEntryData->plId; $this->arrPageEntries[$objEntryData->plId] = $counter; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->plId); } else { $objEntry->setEntryId($objEntryData->id); $objEntry->title = $objEntryData->title; if ($this->objParentPage instanceof Page && ($this->objParentPage->getTypeId() == $this->core->sysConfig->page_types->product_tree->id || $this->objParentPage->getTypeId() == $this->core->sysConfig->page_types->press_area->id || $this->objParentPage->getTypeId() == $this->core->sysConfig->page_types->courses->id || $this->objParentPage->getTypeId() == $this->core->sysConfig->page_types->events->id)) { $objEntry->url = $this->objParentPage->getFieldValue('url') . $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->version][] = $objEntryData->id; } $this->arrPageEntries[$objEntryData->id] = $counter; $objContainer->addPageEntry($objEntry, 'entry_' . $objEntryData->id); } array_push($arrPageIds, $objEntryData->id); } } } $this->arrContainer[$counter] = $objContainer; $counter++; } } /** * get data of instance tables */ if (count($this->arrGenForms) > 0) { $this->loadInstanceData(); } /** * get fallback data of instance tables */ if (count($this->arrFallbackGenForms) > 0) { $this->loadFallbackInstanceData(); } return $this->arrContainer; } catch (Exception $exc) { $this->core->logger->err($exc); } }