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 object $compiler compiler object
24: * @param array $parameter array with compilation parameter
25: *
26: * @return string compiled code
27: */
28: public function compile($args, $compiler, $parameter)
29: {
30: $compiler->variable_filter_stack[] = $compiler->template->variable_filters;
31: $compiler->template->variable_filters = $parameter['modifier_list'];
32: // this tag does not return compiled code
33: $compiler->has_code = false;
34:
35: return true;
36: }
37: }
38:
39: /**
40: * Smarty Internal Plugin Compile Setfilterclose Class
41: *
42: * @package Smarty
43: * @subpackage Compiler
44: */
45: class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase
46: {
47: /**
48: * Compiles code for the {/setfilter} tag
49: * This tag does not generate compiled output. It resets variable filter.
50: *
51: * @param array $args array with attributes from parser
52: * @param object $compiler compiler object
53: *
54: * @return string compiled code
55: */
56: public function compile($args, $compiler)
57: {
58: $_attr = $this->getAttributes($compiler, $args);
59: // reset variable filter to previous state
60: if (count($compiler->variable_filter_stack)) {
61: $compiler->template->variable_filters = array_pop($compiler->variable_filter_stack);
62: } else {
63: $compiler->template->variable_filters = array();
64: }
65: // this tag does not return compiled code
66: $compiler->has_code = false;
67:
68: return true;
69: }
70: }
71: