diff options
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_compile_setfilter.php')
-rw-r--r-- | lib/smarty3/sysplugins/smarty_internal_compile_setfilter.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_compile_setfilter.php b/lib/smarty3/sysplugins/smarty_internal_compile_setfilter.php new file mode 100644 index 0000000..1f3ba8d --- /dev/null +++ b/lib/smarty3/sysplugins/smarty_internal_compile_setfilter.php @@ -0,0 +1,70 @@ +<?php +/** + * Smarty Internal Plugin Compile Setfilter + * Compiles code for setfilter tag + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ + +/** + * Smarty Internal Plugin Compile Setfilter Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase +{ + /** + * Compiles code for setfilter tag + * + * @param array $args array with attributes from parser + * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object + * @param array $parameter array with compilation parameter + * + * @return string compiled code + */ + public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) + { + $compiler->variable_filter_stack[] = $compiler->variable_filters; + $compiler->variable_filters = $parameter[ 'modifier_list' ]; + // this tag does not return compiled code + $compiler->has_code = false; + + return true; + } +} + +/** + * Smarty Internal Plugin Compile Setfilterclose Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase +{ + /** + * Compiles code for the {/setfilter} tag + * This tag does not generate compiled output. It resets variable filter. + * + * @param array $args array with attributes from parser + * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object + * + * @return string compiled code + */ + public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler) + { + $_attr = $this->getAttributes($compiler, $args); + // reset variable filter to previous state + if (count($compiler->variable_filter_stack)) { + $compiler->variable_filters = array_pop($compiler->variable_filter_stack); + } else { + $compiler->variable_filters = array(); + } + // this tag does not return compiled code + $compiler->has_code = false; + + return true; + } +} |