Code

Removed smarty packages from references
[gosa.git] / gosa-core / include / smarty / sysplugins / smarty_internal_compile_append.php
1 <?php
2 /**
3  * Smarty Internal Plugin Compile Append
4  *
5  * Compiles the {append} tag
6  *
7  * @package Smarty
8  * @subpackage Compiler
9  * @author Uwe Tews
10  */
12 /**
13  * Smarty Internal Plugin Compile Append Class
14  *
15  * @package Smarty
16  * @subpackage Compiler
17  */
18 class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign {
20     /**
21      * Compiles code for the {append} tag
22      *
23      * @param array $args array with attributes from parser
24      * @param object $compiler compiler object
25      * @param array $parameter array with compilation parameter
26      * @return string compiled code
27      */
28     public function compile($args, $compiler, $parameter)
29     {
30         // the following must be assigned at runtime because it will be overwritten in parent class
31         $this->required_attributes = array('var', 'value');
32         $this->shorttag_order = array('var', 'value');
33         $this->optional_attributes = array('scope', 'index');
34         // check and get attributes
35         $_attr = $this->getAttributes($compiler, $args);
36         // map to compile assign attributes
37         if (isset($_attr['index'])) {
38             $_params['smarty_internal_index'] = '[' . $_attr['index'] . ']';
39             unset($_attr['index']);
40         } else {
41             $_params['smarty_internal_index'] = '[]';
42         }
43         $_new_attr = array();
44         foreach ($_attr as $key => $value) {
45             $_new_attr[] = array($key => $value);
46         }
47         // call compile assign
48         return parent::compile($_new_attr, $compiler, $_params);
49     }
51 }
53 ?>