Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** Smarty Internal Plugin Compile Eval* Compiles the {eval} tag.** @package Smarty* @subpackage Compiler* @author Uwe Tews*//*** Smarty Internal Plugin Compile Eval Class** @package Smarty* @subpackage Compiler*/class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase{/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $required_attributes = array('var');/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $optional_attributes = array('assign');/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $shorttag_order = array('var', 'assign');/*** Compiles code for the {eval} tag** @param array $args array with attributes from parser* @param object $compiler compiler object** @return string compiled code*/public function compile($args, $compiler){// check and get attributes$_attr = $this->getAttributes($compiler, $args);if (isset($_attr[ 'assign' ])) {// output will be stored in a smarty variable instead of being displayed$_assign = $_attr[ 'assign' ];}// create template object$_output ="\$_template = new {$compiler->smarty->template_class}('eval:'.{$_attr[ 'var' ]}, \$_smarty_tpl->smarty, \$_smarty_tpl);";//was there an assign attribute?if (isset($_assign)) {$_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";} else {$_output .= 'echo $_template->fetch();';}return "<?php $_output ?>";}}