52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
|
<?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}%%*/";
|
||
|
}
|
||
|
}
|