diff options
| author | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
|---|---|---|
| committer | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
| commit | a6c179d56973e382205c8583568d635c37f814c8 (patch) | |
| tree | d144141439adac21f0c1bc2fc2caa85fd8135039 /lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php | |
| parent | 34972193073432105b8659407af5a914b3686f81 (diff) | |
Updates smarty to v3.1.33.
Diffstat (limited to 'lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php')
| -rw-r--r-- | lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php b/lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php new file mode 100644 index 0000000..8e0174e --- /dev/null +++ b/lib/smarty-3.1.33/sysplugins/smarty_internal_compile_eval.php @@ -0,0 +1,70 @@ +<?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 ?>"; + } +} |
