summaryrefslogtreecommitdiff
path: root/libs/sysplugins/smarty_internal_compile_eval.php
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sysplugins/smarty_internal_compile_eval.php')
-rw-r--r--libs/sysplugins/smarty_internal_compile_eval.php56
1 files changed, 39 insertions, 17 deletions
diff --git a/libs/sysplugins/smarty_internal_compile_eval.php b/libs/sysplugins/smarty_internal_compile_eval.php
index aa3c2580..6cf481b5 100644
--- a/libs/sysplugins/smarty_internal_compile_eval.php
+++ b/libs/sysplugins/smarty_internal_compile_eval.php
@@ -1,9 +1,9 @@
<?php
-
/**
* Smarty Internal Plugin Compile Eval
*
- * Compiles the {eval} tag
+ * Compiles the {eval} tag.
+ *
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
@@ -11,41 +11,63 @@
/**
* 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');
- public $optional_attributes = array('assign');
+ /**
+ * 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 array $args array with attributes from parser
* @param object $compiler compiler object
* @return string compiled code
*/
public function compile($args, $compiler)
{
- $this->compiler = $compiler;
$this->required_attributes = array('var');
- $this->optional_attributes = array('assign');
+ $this->optional_attributes = array('assign');
// check and get attributes
- $_attr = $this->_get_attributes($args);
+ $_attr = $this->getAttributes($compiler, $args);
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of beind 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?
+ $_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->getRenderedTemplate());";
+ $_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";
} else {
- $_output .= "echo \$_template->getRenderedTemplate();";
- }
+ $_output .= "echo \$_template->fetch();";
+ }
return "<?php $_output ?>";
- }
-}
+ }
+
+}
?> \ No newline at end of file