|
1 <?php |
|
2 /** |
|
3 * Smarty Internal Plugin Nocache Insert |
|
4 * |
|
5 * Compiles the {insert} tag into the cache file |
|
6 * |
|
7 * @package Smarty |
|
8 * @subpackage Compiler |
|
9 * @author Uwe Tews |
|
10 */ |
|
11 |
|
12 /** |
|
13 * Smarty Internal Plugin Compile Insert Class |
|
14 * |
|
15 * @package Smarty |
|
16 * @subpackage Compiler |
|
17 */ |
|
18 class Smarty_Internal_Nocache_Insert { |
|
19 |
|
20 /** |
|
21 * Compiles code for the {insert} tag into cache file |
|
22 * |
|
23 * @param string $_function insert function name |
|
24 * @param array $_attr array with parameter |
|
25 * @param Smarty_Internal_Template $_template template object |
|
26 * @param string $_script script name to load or 'null' |
|
27 * @param string $_assign optional variable name |
|
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 return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/"; |
|
49 } |
|
50 |
|
51 } |
|
52 |
|
53 ?> |