summaryrefslogtreecommitdiff
path: root/lib/smarty/sysplugins/smarty_resource_recompiled.php
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2018-10-18 02:39:34 +0200
committeremkael <emkael@tlen.pl>2018-10-18 02:39:42 +0200
commitab5d8d4e07bb3c8230d0285ef8902ef1979fce51 (patch)
tree0b955e585cb2fdbc7207392a5f2c97d610b6a5bc /lib/smarty/sysplugins/smarty_resource_recompiled.php
parentc055ce2ab60c6582bad3e5babcb1d00384fde78a (diff)
Updating Smarty
Diffstat (limited to 'lib/smarty/sysplugins/smarty_resource_recompiled.php')
-rw-r--r--lib/smarty/sysplugins/smarty_resource_recompiled.php74
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