Esempio n. 1
0
 public function cache()
 {
     $regedit = regedit::getInstance();
     $settings = self::getStaticCacheSettings();
     $streamsSettings = self::getStreamsCacheSettings();
     $enginesList = cacheFrontend::getPriorityEnginesList(true);
     $currentEngineName = cacheFrontend::getInstance()->getCurrentCacheEngineName();
     $engines = array(getLabel('cache-engine-none'));
     foreach ($enginesList as $engineName) {
         $engines[$engineName] = getLabel("cache-engine-" . $engineName);
     }
     $engines['value'] = $currentEngineName;
     $cacheEngineLabel = $currentEngineName ? getLabel("cache-engine-" . $currentEngineName) : getLabel('cache-engine-none');
     $params = array('engine' => array('status:current-engine' => $cacheEngineLabel, 'select:engines' => $engines), 'streamscache' => array('boolean:cache-enabled' => NULL, "int:cache-lifetime" => NULL), 'static' => array('boolean:enabled' => NULL, 'select:expire' => array('short' => getLabel('cache-static-short'), 'normal' => getLabel('cache-static-normal'), 'long' => getLabel('cache-static-long')), 'boolean:ignore-stat' => NULL), 'test' => array());
     /*if(!defined('DB_DRIVER') || DB_DRIVER == 'mysql') {
     			$dbReport = $this->getDatabaseReport();
     			if($dbReport) {
     				$params['branching']['status:branch'] = $this->getDatabaseReport();
     			}
     		}*/
     if ($settings['expire'] == false) {
         unset($params['static']['select:expire']);
         unset($params['static']['boolean:ignore-stat']);
     }
     if ($currentEngineName) {
         $params['engine']['status:reset'] = true;
     }
     if (!$streamsSettings['cache-enabled']) {
         unset($params['streamscache']['int:cache-lifetime']);
     }
     if (!$currentEngineName) {
         unset($params['streamscache']);
     }
     $mode = (string) getRequest('param0');
     $is_demo = defined('CURRENT_VERSION_LINE') && CURRENT_VERSION_LINE == 'demo';
     if ($mode == 'do' and !$is_demo) {
         $params = $this->expectParams($params);
         if (!isset($params['static']['select:expire'])) {
             $params['static']['select:expire'] = "normal";
             $params['static']['boolean:ignore-stat'] = false;
         }
         $settings = array('enabled' => $params['static']['boolean:enabled'], 'expire' => $params['static']['select:expire'], 'ignore-stat' => $params['static']['boolean:ignore-stat']);
         if (isset($params['streamscache']['boolean:cache-enabled'])) {
             $streamsSettings['cache-enabled'] = $params['streamscache']['boolean:cache-enabled'];
         }
         if (isset($params['streamscache']['int:cache-lifetime'])) {
             $streamsSettings['cache-lifetime'] = $params['streamscache']['int:cache-lifetime'];
         }
         self::setStaticCacheSettings($settings);
         self::setStreamsCacheSettings($streamsSettings);
         cacheFrontend::getInstance()->switchCacheEngine($params['engine']['select:engines']);
         $this->chooseRedirect($this->pre_lang . "/admin/config/cache/");
     } else {
         if ($mode == "reset") {
             if (!$is_demo) {
                 cacheFrontend::getInstance()->flush();
             }
             $this->chooseRedirect($this->pre_lang . "/admin/config/cache/");
         }
     }
     $settings = self::getStaticCacheSettings();
     $params['static']['boolean:enabled'] = $settings['enabled'];
     $params['static']['select:expire']['value'] = $settings['expire'];
     $params['static']['boolean:ignore-stat'] = $settings['ignore-stat'];
     if ($settings['expire'] == false) {
         unset($params['static']['select:expire']);
         unset($params['static']['boolean:ignore-stat']);
     }
     $streamsSettings = self::getStreamsCacheSettings();
     $params['streamscache']['boolean:cache-enabled'] = $streamsSettings['cache-enabled'];
     $params['streamscache']['int:cache-lifetime'] = $streamsSettings['cache-lifetime'];
     if (!$params['streamscache']['boolean:cache-enabled']) {
         unset($params['streamscache']['int:cache-lifetime']);
     }
     if (!$currentEngineName) {
         unset($params['streamscache']);
     }
     $this->setDataType("settings");
     $this->setActionType("modify");
     $data = $this->prepareData($params, "settings");
     $this->setData($data);
     return $this->doData();
 }