diff options
author | emkael <emkael@tlen.pl> | 2018-10-18 02:39:34 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2018-10-18 02:39:42 +0200 |
commit | ab5d8d4e07bb3c8230d0285ef8902ef1979fce51 (patch) | |
tree | 0b955e585cb2fdbc7207392a5f2c97d610b6a5bc /lib/smarty/sysplugins/smarty_resource_recompiled.php | |
parent | c055ce2ab60c6582bad3e5babcb1d00384fde78a (diff) |
Updating Smarty
Diffstat (limited to 'lib/smarty/sysplugins/smarty_resource_recompiled.php')
-rw-r--r-- | lib/smarty/sysplugins/smarty_resource_recompiled.php | 74 |
1 files changed, 66 insertions, 8 deletions
diff --git a/lib/smarty/sysplugins/smarty_resource_recompiled.php b/lib/smarty/sysplugins/smarty_resource_recompiled.php index ab55b93..760c4dd 100644 --- a/lib/smarty/sysplugins/smarty_resource_recompiled.php +++ b/lib/smarty/sysplugins/smarty_resource_recompiled.php @@ -2,26 +2,74 @@ /** * Smarty Resource Plugin * - * @package Smarty + * @package Smarty * @subpackage TemplateResources - * @author Rodney Rehm + * @author Rodney Rehm */ /** * Smarty Resource Plugin - * * Base implementation for resource plugins that don't compile cache * - * @package Smarty + * @package Smarty * @subpackage TemplateResources */ -abstract class Smarty_Resource_Recompiled extends Smarty_Resource { +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_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) @@ -31,6 +79,16 @@ abstract class Smarty_Resource_Recompiled extends Smarty_Resource { $compiled->exists = false; } + /* + * Disable timestamp checks for recompiled resource. + * + * @return bool + */ + /** + * @return bool + */ + public function checkTimestamps() + { + return false; + } } - -?>
\ No newline at end of file |