Files
zurawik.pl/core/class/TemplateMaster.class.php
2026-05-15 20:23:25 +02:00

190 lines
5.5 KiB
PHP

<?php
/*
* Klasa posredniczaca w dostepie do smarty, obsluguje kontrole cacheowania
*/
class TemplateMaster extends Smarty {
//private $clearCache = false;
public function CacheControl($tpl, $param = '') {
return false;
}
/**
* Returns an array containing template variables
*
* @param string $name
* @param string $type
* @return array
*/
function &get_template_vars($name = null) {
if (!isset($name)) {
return $this->getTemplateVars();
} elseif ($this->getTemplateVars($name)) {
$_tmp = $this->getTemplateVars($name);
return $_tmp;
} else {
// var non-existant, return valid reference
$_tmp = null;
return $_tmp;
}
}
//
// public function CacheControl($tpl, $param='') {
//
// $this->force_compile = 0;
// if($this->caching!=2) {
// $this->cache_lifetime = 0;
// //$this->force_compile = true;
// // echo"aaa";
// return false;
// }
//
// // $param =
// // array ( 'cache_id' => [string],
// // 'compile_id'=> [string],
// // 'lifetime' => [integer],
// // 'write' => [boolean] );
// $_cache_file = null;
// $_auto_id = $this->_get_auto_id($param['cache_id'], 1);
// $_cache_file = $this->_get_auto_filename($this->cache_dir, $tpl, $_auto_id);
// if($this->template_exists($tpl)) {
// //$_cache_file = $this->_get_auto_filename($this->cache_dir, $tpl, $_auto_id);
// //$_compile_file = $this->_get_auto_filename($this->compile_dir, $tpl, $_auto_id);
//
// if(!$this->_is_compiled($tpl, $this->compile_dir) && is_file($_cache_file)) {
// $this->clear_cache($tpl, $param['cache_id'], $param['cache_id']);
// }
// }
//
// //$memcacheCheck = false;
// //if(Enviroment::CheckMemcache()) {
// // $memcacheCheck = MfMemcache::exists('cacheLock'.$param['cache_id']);
// //}
//
// $this->cache_lifetime = -1;
//
// // sprawdzam cache
// if (!$this->is_cached($tpl, $param['cache_id'])) {
// //echo"tu";
// return false;
//
// } elseif ((isset($param['methodRun']) && Registry::Get('methodRun') == true && (isset($param['write']) || $this->caching!=2 )) || (isset($param['write']) || $this->caching!=2 && !isset($param['methodRun']))) {
// MFLog::Debug("writing:".$tpl);
// //$this->clear_cache($tpl, $param['cache_id']);
// $this->clearCache = true;
//
// if(is_file($_cache_file)) {
// ///$futureTime = time();
// ///touch($_cache_file, $futureTime, $futureTime);
// //echo $futureTime."<br>";
// //$fh = fopen($_cache_file, 'w');
//
// $_contents = $this->_read_file($_cache_file);
// $_info_start = strpos($_contents, "\n") + 1;
// $_info_len = (int)substr($_contents, 0, $_info_start - 1);
// $_cache_info = unserialize(substr($_contents, $_info_start, $_info_len));
// $results = substr($_contents, $_info_start + $_info_len);
//
// $cacheInfo = $this->_cache_info;
// $cacheInfo['timestamp'] = time();
// //$cacheInfo['mexyk'] = time();
// //$cacheInfo['expires'] = '0';
//
// $sCacheInfo = serialize($cacheInfo);
// $header = strlen($sCacheInfo) . "\n" .$sCacheInfo;
//
// $fh = fopen($_cache_file, 'w');
//
// fwrite($fh, $header.$results);
// fclose($fh);
//
// }
// //if(Enviroment::CheckMemcache()) {
// // MfMemcache::set('cacheLock'.$param['cache_id'], true);
// //}
// // force overwrite cache file
// //$this->force_compile = true;
// //$this->cache_lifetime = 0;
// return true;
//
// } elseif (isset($param['lifetime'])) {
// //if(!Core::GetAppSafeMode() && $memcacheCheck == false) {
// if(!Core::GetAppSafeMode()) {
// // sprawdza czas cache
// MFLog::Debug('check:'.date("d H:i:s", $this->_cache_info['timestamp']));
// //return ($this->_cache_info['timestamp'] < time() - $param['lifetime']) ? false : true;
// //echo $this->_cache_info['timestamp'].':'.(time() - $param['lifetime'])."<br>";
// if($this->_cache_info['timestamp'] < time() - $param['lifetime']){
// //echo"regeneruj";
// return false;
// } else {
// return true;
// }
// } else {
// return true;
// }
//
// } else {
// return true;
// }
// }
//
// public function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) {
// //if(Enviroment::CheckMemcache()) {
// // MfMemcache::remove('cacheLock'.$cache_id);
// //}
//
// if($this->clearCache == true) {
// $_auto_id = $this->_get_auto_id($cache_id, 1);
// $_cache_file = $this->_get_auto_filename($this->cache_dir, $resource_name, $_auto_id);
//
// if(is_file($_cache_file)) {
//
// unlink($_cache_file);
//
// $this->force_compile = true;
// $this->is_cached($resource_name, $cache_id);
// $this->force_compile = false;
//
// }
// }
// $this->clearCache = false;
// return parent::fetch($resource_name, $cache_id, $compile_id, $display);
// }
//
//
// public function touchCacheFile($cacheFile) {
// if(is_file($cacheFile)) {
// ///$futureTime = time();
// ///touch($_cache_file, $futureTime, $futureTime);
// //echo $futureTime."<br>";
// //$fh = fopen($_cache_file, 'w');
//
// $_contents = $this->_read_file($cacheFile);
// $_info_start = strpos($_contents, "\n") + 1;
// $_info_len = (int)substr($_contents, 0, $_info_start - 1);
// $_cache_info = unserialize(substr($_contents, $_info_start, $_info_len));
// $results = substr($_contents, $_info_start + $_info_len);
//
// $cacheInfo = $_cache_info;
// $cacheInfo['timestamp'] = time();
// //$cacheInfo['mexyk'] = time();
// //$cacheInfo['expires'] = '0';
//
// $sCacheInfo = serialize($cacheInfo);
// $header = strlen($sCacheInfo) . "\n" .$sCacheInfo;
//
// $fh = fopen($cacheFile, 'w');
//
// fwrite($fh, $header.$results);
// fclose($fh);
//
// }
// }
}
?>