Esempio n. 1
0
 /**
  * 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);
     }
 }
Esempio n. 2
0
 /**
  * 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);
     }
 }