admin_event_cache.php 1.52 KB
<?php
/**
* @author:  Bunzia Alexander <nifus@mail.ru> <http://www.weblancer.net/users/nifus/>
* @copyright: Copyright (c) 2010, Bunzia Alexander
* @version: 1.0
* @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @package: HiLi CMS
*/
if ( !defined("event_admin_cache") ){
  define("event_admin_cache", 1); 
  
  
  /**
  * Загружаем результаты кэширования таблиц mysql
  * 
  *
  */
  function admin_event_cache(){
  global $MAIN_DB;
    if ( MAIN_CACHE_MODE==0 ){
      return false;
    }
    

    include_once(MAIN_SOURCE_PATH.'/inc/class.cache.php');
      //  загружаем таблицы из кэша
    $c = cache::create('admin_cache');
        //  кэш храним 2 часа
    $s = $c -> load( 3200 );
    if ( !empty($s) ){
      $MAIN_CACHE = unserialize($s);
      return true;
    }else{
      $c -> clear('admin_cache');
    }
    
    
      //  создаём новый кэш
    include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/class.modules.php');
    $modules = modules::list_active();
    $data = array(); 
    foreach( $modules AS $module ){
      if ( !file_exists(MAIN_SOURCE_PATH.'/modules/'.$module.'/inc/system.php') ){
        continue;
      }
      include_once(MAIN_SOURCE_PATH.'/modules/'.$module.'/inc/system.php');
      $f = $module.'_cache';
      if ( !function_exists($f) ){
        continue;
      }
      
      $data[$module] = $f();
    }
   
    $c = cache::create('admin_cache');
    $c -> save( serialize($data) );
    return true;
  }
  
  
}
?>