Commit | Line | Data |
---|---|---|
2aa91ff2 S |
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 | } |