Ejemplo n.º 1
0
 protected function loadFullMenuTree()
 {
     if (self::$fullMenuTree != null) {
         return;
     }
     $cache_id = 'FULL_MENU_LIST';
     $cacheSvc = Openbiz::getService(CACHE_SERVICE, 1);
     $cacheSvc->init($this->objectName, 600);
     // cache for 10 mins
     if ($cacheSvc->test($cache_id)) {
         self::$fullMenuTree = $cacheSvc->load($cache_id);
         return;
     }
     $rs = parent::directFetch();
     foreach ($rs as $record) {
         if (empty($record['PId'])) {
             $record['PId'] = "__root__";
         }
         unset($record['create_by']);
         unset($record['create_time']);
         unset($record['update_by']);
         unset($record['update_time']);
         unset($record['name']);
         unset($record['parent']);
         self::$fullMenuTree[$record['Id']] = $record;
     }
     foreach (self::$fullMenuTree as $mId => $record) {
         self::$fullMenuTree[$record['PId']]['children'][] = $mId;
     }
     //print_r(self::$fullMenuTree);
     $cacheSvc->save(self::$fullMenuTree, $cache_id);
     // put it in apc or file cache
 }