diff options
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_nocache_insert.php')
-rw-r--r-- | lib/smarty3/sysplugins/smarty_internal_nocache_insert.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_nocache_insert.php b/lib/smarty3/sysplugins/smarty_internal_nocache_insert.php new file mode 100644 index 0000000..6762c28 --- /dev/null +++ b/lib/smarty3/sysplugins/smarty_internal_nocache_insert.php @@ -0,0 +1,53 @@ +<?php +/** + * Smarty Internal Plugin Nocache Insert + * Compiles the {insert} tag into the cache file + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ + +/** + * Smarty Internal Plugin Compile Insert Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Nocache_Insert +{ + /** + * Compiles code for the {insert} tag into cache file + * + * @param string $_function insert function name + * @param array $_attr array with parameter + * @param Smarty_Internal_Template $_template template object + * @param string $_script script name to load or 'null' + * @param string $_assign optional variable name + * + * @return string compiled code + */ + public static function compile($_function, $_attr, $_template, $_script, $_assign = null) + { + $_output = '<?php '; + if ($_script != 'null') { + // script which must be included + // code for script file loading + $_output .= "require_once '{$_script}';"; + } + // call insert + if (isset($_assign)) { + $_output .= "\$_smarty_tpl->assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . + ",\$_smarty_tpl), true);?>"; + } else { + $_output .= "echo {$_function}(" . var_export($_attr, true) . ",\$_smarty_tpl);?>"; + } + $_tpl = $_template; + while (isset($_tpl->parent) && $_tpl->parent->_objType == 2) { + $_tpl = $_tpl->parent; + } + + return "/*%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/" . $_output . + "/*/%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/"; + } +} |