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: