File indexing completed on 2025-05-04 05:29:14

0001 <?php
0002 /**
0003  *  ocs-webserver
0004  *
0005  *  Copyright 2016 by pling GmbH.
0006  *
0007  *    This file is part of ocs-webserver.
0008  *
0009  *    This program is free software: you can redistribute it and/or modify
0010  *    it under the terms of the GNU Affero General Public License as
0011  *    published by the Free Software Foundation, either version 3 of the
0012  *    License, or (at your option) any later version.
0013  *
0014  *    This program is distributed in the hope that it will be useful,
0015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  *    GNU Affero General Public License for more details.
0018  *
0019  *    You should have received a copy of the GNU Affero General Public License
0020  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0021  **/
0022 
0023 class Default_View_Helper_FetchDomains extends Zend_View_Helper_Abstract
0024 {
0025     const CACHE_DOMAIN_OBJECTS = 'helper_domain_objects';
0026 
0027     public function fetchDomainObjects()
0028     {
0029 
0030         /** @var Zend_Cache_Core $cache */
0031         $cache = Zend_Registry::get('cache');
0032         $cacheName = self::CACHE_DOMAIN_OBJECTS;
0033 
0034 
0035         if (false == ($domainobjects = $cache->load($cacheName))) {
0036 
0037             $tbl = new Default_Model_DbTable_ConfigStore();
0038             $result = $tbl->fetchDomainObjects();
0039             // sort Desktop in front
0040             $arrayDesktop = array();
0041             $arrayRest = array();
0042             foreach ($result as $obj) {
0043                 $o = $obj['order'];
0044                 $curOrder = floor($obj['order'] / 1000);
0045                 if ($curOrder < 10 or $curOrder > 50) {
0046                     continue;
0047                 }
0048                 $obj['calcOrder'] = $curOrder;
0049                 if ($curOrder == 30) {
0050                     // Desktop set calcOrder = 9 manuelly put desktop in front
0051                     $obj['calcOrder'] = 9;
0052                     $arrayDesktop[] = $obj;
0053                 } else {
0054                     $arrayRest[] = $obj;
0055                 }
0056             }
0057             $domainobjects = array_merge($arrayDesktop, $arrayRest);
0058             $cache->save($domainobjects, $cacheName, array(), 28800);
0059         }
0060 
0061         return $domainobjects;
0062     }
0063 
0064 }