1: <?php
2: /**
3: * Smarty Internal Plugin Compile Setfilter
4: * Compiles code for setfilter tag
5: *
6: * @package Smarty
7: * @subpackage Compiler
8: * @author Uwe Tews
9: */
10:
11: /**
12: * Smarty Internal Plugin Compile Setfilter Class
13: *
14: * @package Smarty
15: * @subpackage Compiler
16: */
17: class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase
18: {
19: /**
20: * Compiles code for setfilter tag
21: *
22: * @param array $args array with attributes from parser
23: * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
24: * @param array $parameter array with compilation parameter
25: *
26: * @return string compiled code
27: */
28: public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
29: {
30: $compiler->variable_filter_stack[] = $compiler->variable_filters;
31: $compiler->variable_filters = $parameter[ 'modifier_list' ];
32: // this tag does not return compiled code
33: $compiler->has_code = false;
34: return true;
35: }
36: }
37:
38: /**
39: * Smarty Internal Plugin Compile Setfilterclose Class
40: *
41: * @package Smarty
42: * @subpackage Compiler
43: */
44: class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase
45: {
46: /**
47: * Compiles code for the {/setfilter} tag
48: * This tag does not generate compiled output. It resets variable filter.
49: *
50: * @param array $args array with attributes from parser
51: * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
52: *
53: * @return string compiled code
54: */
55: public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
56: {
57: $_attr = $this->getAttributes($compiler, $args);
58: // reset variable filter to previous state
59: if (count($compiler->variable_filter_stack)) {
60: $compiler->variable_filters = array_pop($compiler->variable_filter_stack);
61: } else {
62: $compiler->variable_filters = array();
63: }
64: // this tag does not return compiled code
65: $compiler->has_code = false;
66: return true;
67: }
68: }
69: