diff options
author | friendica <info@friendica.com> | 2012-07-03 22:23:08 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-07-03 22:23:08 -0700 |
commit | fd626022ec02ef47b9142bba08180502babbd0ca (patch) | |
tree | ffc77e4e9cafdc6e20217f3970de982cabcbd838 /library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php | |
parent | 13b4962531ca3c4f085b385a2c6b8f088abb7d6a (diff) | |
download | volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.gz volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.tar.bz2 volse-hubzilla-fd626022ec02ef47b9142bba08180502babbd0ca.zip |
add smarty engine, remove some obsolete zot1 stuff
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php new file mode 100644 index 000000000..6cf481b50 --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php @@ -0,0 +1,73 @@ +<?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) + { + $this->required_attributes = array('var'); + $this->optional_attributes = array('assign'); + // 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 + $_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 ?>"; + } + +} + +?>
\ No newline at end of file |