<?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}%%*/"; } }