bug #385 update to smarty-3.1.28-dev (from Github)

This commit is contained in:
plegall
2015-12-10 14:02:22 +01:00
parent 16f6a54fa7
commit fa10e0945e
217 changed files with 22916 additions and 13779 deletions
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Eval
*
* Compiles the {eval} tag.
*
* @package Smarty
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Eval Class
*
* @package Smarty
* @package Smarty
* @subpackage Compiler
*/
class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
{
/**
* Attribute definition: Overwrites base class.
*
@@ -37,13 +36,14 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
public $shorttag_order = array('var','assign');
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
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -53,21 +53,19 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of beind displayed
// 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);";
$_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 ?>";
}
}
?>