You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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->parent instanceof Smarty_Internal_Template) {
|
|
$_tpl = $_tpl->parent;
|
|
}
|
|
|
|
return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/";
|
|
}
|
|
}
|