forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
51 lines
1.7 KiB
<?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 ($_tpl->_isSubTpl()) { |
|
$_tpl = $_tpl->parent; |
|
} |
|
return "/*%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/{$_output}/*/%%SmartyNocache:{$_tpl->compiled->nocache_hash}%%*/"; |
|
} |
|
}
|
|
|