1: <?php
2: /**
3: * Smarty Internal Plugin Nocache Insert
4: * Compiles the {insert} tag into the cache file
5: *
6: * @package Smarty
7: * @subpackage Compiler
8: * @author Uwe Tews
9: */
10:
11: /**
12: * Smarty Internal Plugin Compile Insert Class
13: *
14: * @package Smarty
15: * @subpackage Compiler
16: */
17: class Smarty_Internal_Nocache_Insert
18: {
19: /**
20: * Compiles code for the {insert} tag into cache file
21: *
22: * @param string $_function insert function name
23: * @param array $_attr array with parameter
24: * @param Smarty_Internal_Template $_template template object
25: * @param string $_script script name to load or 'null'
26: * @param string $_assign optional variable name
27: *
28: * @return string compiled code
29: */
30: public static function compile($_function, $_attr, $_template, $_script, $_assign = null)
31: {
32: $_output = '<?php ';
33: if ($_script != 'null') {
34: // script which must be included
35: // code for script file loading
36: $_output .= "require_once '{$_script}';";
37: }
38: // call insert
39: if (isset($_assign)) {
40: $_output .= "\$_smarty_tpl->assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . ",\$_smarty_tpl), true);?>";
41: } else {
42: $_output .= "echo {$_function}(" . var_export($_attr, true) . ",\$_smarty_tpl);?>";
43: }
44: $_tpl = $_template;
45: while ($_tpl->parent instanceof Smarty_Internal_Template) {
46: $_tpl = $_tpl->parent;
47: }
48:
49: return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/";
50: }
51: }
52: