/**
  * Empty cache for a specific template
  *
  * @api  Smarty::clearCache()
  * @link http://www.smarty.net/docs/en/api.clear.cache.tpl
  *
  * @param \Smarty  $smarty
  * @param  string  $template_name template name
  * @param  string  $cache_id      cache id
  * @param  string  $compile_id    compile id
  * @param  integer $exp_time      expiration time
  * @param  string  $type          resource type
  *
  * @return integer number of cache files deleted
  */
 public function clearCache(Smarty $smarty, $template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
 {
     $smarty->_clearTemplateCache();
     // load cache resource and call clear
     $_cache_resource = Smarty_CacheResource::load($smarty, $type);
     return $_cache_resource->clear($smarty, $template_name, $cache_id, $compile_id, $exp_time);
 }
예제 #2
0
 /**
  * Read cache content from handler
  *
  * @param Smarty_Internal_Template $_template template object
  *
  * @return string|false content
  */
 public function read(Smarty_Internal_Template $_template)
 {
     if (!$_template->source->handler->recompiled) {
         return $this->handler->readCachedContent($_template);
     }
     return false;
 }
 /**
  * Empty cache folder
  *
  * @api  Smarty::clearAllCache()
  * @link http://www.smarty.net/docs/en/api.clear.all.cache.tpl
  *
  * @param \Smarty  $smarty
  * @param  integer $exp_time expiration time
  * @param  string  $type     resource type
  *
  * @return integer number of cache files deleted
  */
 public function clearAllCache(Smarty $smarty, $exp_time = null, $type = null)
 {
     $smarty->_clearTemplateCache();
     // load cache resource and call clearAll
     $_cache_resource = Smarty_CacheResource::load($smarty, $type);
     return $_cache_resource->clearAll($smarty, $exp_time);
 }
 /**
  * Empty cache folder
  *
  * @api  Smarty::clearAllCache()
  * @link http://www.MVC.net/docs/en/api.clear.all.cache.tpl
  *
  * @param \Smarty  $smarty
  * @param  integer $exp_time expiration time
  * @param  string  $type     resource type
  *
  * @return integer number of cache files deleted
  */
 public function clearAllCache(Smarty $smarty, $exp_time = null, $type = null)
 {
     // load cache resource and call clearAll
     $_cache_resource = Smarty_CacheResource::load($smarty, $type);
     $_cache_resource->invalidLoadedCache($smarty);
     return $_cache_resource->clearAll($smarty, $exp_time);
 }
예제 #5
0
 public function setUp()
 {
     $this->smarty = SmartyTests::$smarty;
     $this->smartyBC = SmartyTests::$smartyBC;
     // reset cache for unit test
     Smarty_CacheResource::$resources = array();
     SmartyTests::init();
 }
 /**
  * Empty cache for a specific template
  *
  * @api  Smarty::clearCache()
  * @link http://www.smarty.net/docs/en/api.clear.cache.tpl
  *
  * @param \Smarty  $smarty
  * @param  string  $template_name template name
  * @param  string  $cache_id      cache id
  * @param  string  $compile_id    compile id
  * @param  integer $exp_time      expiration time
  * @param  string  $type          resource type
  *
  * @return integer number of cache files deleted
  */
 public function clearCache(Smarty $smarty, $template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
 {
     // load cache resource and call clear
     $_cache_resource = Smarty_CacheResource::load($smarty, $type);
     if ($smarty->caching_type != 'file' && !isset($template_name)) {
         $_cache_resource->invalidLoadedCache($smarty);
     }
     return $_cache_resource->clear($smarty, $template_name, $cache_id, $compile_id, $exp_time);
 }
예제 #7
0
 /**
  * Write this cache object to handler
  * @param Smarty_Internal_Template $_template template object
  * @param string $content content to cache
  * @return boolean success
  */
 public function write(Smarty_Internal_Template $_template, $content)
 {
     if (!$_template->source->recompiled) {
         if ($this->handler->writeCachedContent($_template, $content)) {
             $this->content = NULL;
             $this->timestamp = time();
             $this->exists = TRUE;
             $this->valid = TRUE;
             $this->processed = FALSE;
             if ($_template->smarty->cache_locking) {
                 $this->handler->releaseLock($_template->smarty, $this);
             }
             return TRUE;
         }
         $this->content = NULL;
         $this->timestamp = FALSE;
         $this->exists = FALSE;
         $this->valid = FALSE;
         $this->processed = FALSE;
     }
     return FALSE;
 }
예제 #8
0
 /**
  * Empty cache for a specific template
  *
  * @param string  $template_name template name
  * @param string  $cache_id      cache id
  * @param string  $compile_id    compile id
  * @param integer $exp_time      expiration time
  * @param string  $type          resource type
  * @return integer number of cache files deleted
  */
 public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
 {
     // load cache resource and call clear
     $_cache_resource = Smarty_CacheResource::load($this, $type);
     Smarty_CacheResource::invalidLoadedCache($this);
     return $_cache_resource->clear($this, $template_name, $cache_id, $compile_id, $exp_time);
 }
 /**
  * Empty cache for this template
  *
  * @param integer $exp_time      expiration time
  * @return integer number of cache files deleted
  */
 public function clearCache($exp_time = null)
 {
     Smarty_CacheResource::invalidLoadedCache($this->smarty);
     return $this->cached->handler->clear($this->smarty, $this->template_name, $this->cache_id, $this->compile_id, $exp_time);
 }
예제 #10
0
 /**
  * Write this cache object to handler
  *
  * @param Smarty_Internal_Template $_template template object
  * @param string $content content to cache
  * @return boolean success
  */
 public function write(Smarty_Internal_Template $_template, $content)
 {
     if (!$_template->source->recompiled) {
         if ($this->handler->writeCachedContent($_template, $content)) {
             $this->timestamp = time();
             $this->exists = true;
             $this->valid = true;
             if ($_template->smarty->cache_locking) {
                 $this->handler->releaseLock($_template->smarty, $this);
             }
             return true;
         }
     }
     return false;
 }
예제 #11
0
 /**
  * Empty cache for a specific template
  *
  * @param string  $template_name template name
  * @param string  $cache_id      cache id
  * @param string  $compile_id    compile id
  * @param integer $exp_time      expiration time
  * @param string  $type          resource type
  * @return integer number of cache files deleted
  */
 public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
 {
     Smarty::muteExpectedErrors();
     // load cache resource and call clear
     $_cache_resource = Smarty_CacheResource::load($this, $type);
     Smarty_CacheResource::invalidLoadedCache($this);
     $t = $_cache_resource->clear($this, $template_name, $cache_id, $compile_id, $exp_time);
     Smarty::unmuteExpectedErrors();
     return $t;
 }
예제 #12
0
 public function __construct(Smarty_Internal_Template $_template)
 {
     $this->compile_id = $_template->compile_id;
     $this->cache_id = $_template->cache_id;
     $this->source = $_template->source;
     $_template->cached = $this;
     $smarty = $_template->smarty;
     $this->handler = $handler = Smarty_CacheResource::load($smarty);
     if (!($_template->caching == Smarty::CACHING_LIFETIME_CURRENT || $_template->caching == Smarty::CACHING_LIFETIME_SAVED) || $_template->source->recompiled) {
         $handler->populate($this, $_template);
         return;
     }
     while (true) {
         while (true) {
             $handler->populate($this, $_template);
             if ($this->timestamp === false || $smarty->force_compile || $smarty->force_cache) {
                 $this->valid = false;
             } else {
                 $this->valid = true;
             }
             if ($this->valid && $_template->caching == Smarty::CACHING_LIFETIME_CURRENT && $_template->cache_lifetime >= 0 && time() > $this->timestamp + $_template->cache_lifetime) {
                 $this->valid = false;
             }
             if ($this->valid || !$_template->smarty->cache_locking) {
                 break;
             }
             if (!$this->handler->locked($_template->smarty, $this)) {
                 $this->handler->acquireLock($_template->smarty, $this);
                 break 2;
             }
         }
         if ($this->valid) {
             if (!$_template->smarty->cache_locking || $this->handler->locked($_template->smarty, $this) === null) {
                 if ($smarty->debugging) {
                     Smarty_Internal_Debug::start_cache($_template);
                 }
                 if ($handler->process($_template, $this) === false) {
                     $this->valid = false;
                 } else {
                     $this->processed = true;
                 }
                 if ($smarty->debugging) {
                     Smarty_Internal_Debug::end_cache($_template);
                 }
             } else {
                 continue;
             }
         } else {
             return;
         }
         if ($this->valid && $_template->caching === Smarty::CACHING_LIFETIME_SAVED && $_template->properties['cache_lifetime'] >= 0 && time() > $_template->cached->timestamp + $_template->properties['cache_lifetime']) {
             $this->valid = false;
         }
         if (!$this->valid && $_template->smarty->cache_locking) {
             $this->handler->acquireLock($_template->smarty, $this);
             return;
         } else {
             return;
         }
     }
 }