forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.3 KiB
94 lines
2.3 KiB
<?php |
|
/** |
|
* Smarty Resource Plugin |
|
* |
|
* @package Smarty |
|
* @subpackage TemplateResources |
|
* @author Rodney Rehm |
|
*/ |
|
|
|
/** |
|
* Smarty Resource Plugin |
|
* Base implementation for resource plugins that don't compile cache |
|
* |
|
* @package Smarty |
|
* @subpackage TemplateResources |
|
*/ |
|
abstract class Smarty_Resource_Recompiled extends Smarty_Resource |
|
{ |
|
/** |
|
* Flag that it's an recompiled resource |
|
* |
|
* @var bool |
|
*/ |
|
public $recompiled = true; |
|
|
|
/** |
|
* Resource does implement populateCompiledFilepath() method |
|
* |
|
* @var bool |
|
*/ |
|
public $hasCompiledHandler = true; |
|
|
|
/** |
|
* compile template from source |
|
* |
|
* @param Smarty_Internal_Template $_smarty_tpl do not change variable name, is used by compiled template |
|
* |
|
* @throws Exception |
|
*/ |
|
public function process(Smarty_Internal_Template $_smarty_tpl) |
|
{ |
|
$compiled = &$_smarty_tpl->compiled; |
|
$compiled->file_dependency = array(); |
|
$compiled->includes = array(); |
|
$compiled->nocache_hash = null; |
|
$compiled->unifunc = null; |
|
$level = ob_get_level(); |
|
ob_start(); |
|
$_smarty_tpl->loadCompiler(); |
|
// call compiler |
|
try { |
|
eval('?>' . $_smarty_tpl->compiler->compileTemplate($_smarty_tpl)); |
|
} catch (Exception $e) { |
|
unset($_smarty_tpl->compiler); |
|
while (ob_get_level() > $level) { |
|
ob_end_clean(); |
|
} |
|
throw $e; |
|
} |
|
// release compiler object to free memory |
|
unset($_smarty_tpl->compiler); |
|
ob_get_clean(); |
|
$compiled->timestamp = time(); |
|
$compiled->exists = true; |
|
} |
|
|
|
/** |
|
* populate Compiled Object with compiled filepath |
|
* |
|
* @param Smarty_Template_Compiled $compiled compiled object |
|
* @param Smarty_Internal_Template $_template template object |
|
* |
|
* @return void |
|
*/ |
|
public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template) |
|
{ |
|
$compiled->filepath = false; |
|
$compiled->timestamp = false; |
|
$compiled->exists = false; |
|
} |
|
|
|
/* |
|
* Disable timestamp checks for recompiled resource. |
|
* |
|
* @return bool |
|
*/ |
|
/** |
|
* @return bool |
|
*/ |
|
public function checkTimestamps() |
|
{ |
|
return false; |
|
} |
|
}
|
|
|