/**
  * get a Compiled Object of this source
  * @param  Smarty_Internal_Template $_template template object
  * @return Smarty_Template_Compiled compiled object
  */
 static function load($_template)
 {
     if (!isset($_template->source)) {
         $_template->loadSource();
     }
     // check runtime cache
     if (!$_template->source->recompiled && $_template->smarty->resource_caching) {
         $_cache_key = $_template->source->unique_resource . '#';
         if ($_template->caching) {
             $_cache_key .= 'caching#';
         }
         $_cache_key .= $_template->compile_id;
         if (isset($_template->source->compileds[$_cache_key])) {
             return $_template->source->compileds[$_cache_key];
         }
     }
     $compiled = new Smarty_Template_Compiled();
     if (method_exists($_template->source->handler, 'populateCompiledFilepath')) {
         $_template->source->handler->populateCompiledFilepath($compiled, $_template);
     } else {
         $compiled->populateCompiledFilepath($_template);
     }
     // runtime cache
     if (!$_template->source->recompiled && $_template->smarty->resource_caching) {
         $_template->source->compileds[$_cache_key] = $compiled;
     }
     return $compiled;
 }
Example #2
0
 /**
  * create Cached Object container
  *
  * @param Smarty_Internal_Template $_template template object
  */
 public function __construct(Smarty_Internal_Template $_template)
 {
     $this->compile_id = $_template->compile_id;
     $this->cache_id = $_template->cache_id;
     if (!isset($_template->source)) {
         $_template->loadSource();
     }
     $this->source = $_template->source;
     if (!class_exists('Smarty_CacheResource', false)) {
         require SMARTY_SYSPLUGINS_DIR . 'smarty_cacheresource.php';
     }
     $this->handler = Smarty_CacheResource::load($_template->smarty);
 }