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) .
41: ',\$_smarty_tpl), true);?>';
42: } else {
43: $_output .= "echo {$_function}(" . var_export($_attr, true) . ',$_smarty_tpl);?>';
44: }
45: $_tpl = $_template;
46: while ($_tpl->_isSubTpl()) {
47: $_tpl = $_tpl->parent;
48: }
49: return "/*%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/{$_output}/*/%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/";
50: }
51: }
52: