]> git.mxchange.org Git - friendica.git/blob - library/Smarty/libs/sysplugins/smarty_internal_compile_append.php
Add Smarty to Composer
[friendica.git] / library / Smarty / libs / sysplugins / smarty_internal_compile_append.php
1 <?php
2 /**
3  * Smarty Internal Plugin Compile Append
4  * Compiles the {append} tag
5  *
6  * @package    Smarty
7  * @subpackage Compiler
8  * @author     Uwe Tews
9  */
10
11 /**
12  * Smarty Internal Plugin Compile Append Class
13  *
14  * @package    Smarty
15  * @subpackage Compiler
16  */
17 class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
18 {
19     /**
20      * Compiles code for the {append} 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         // 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     }
50 }