| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * Smarty Internal Plugin Compile Append | 
					
						
							|  |  |  |  * Compiles the {append} tag | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @package    Smarty | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * @subpackage Compiler | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @author     Uwe Tews | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * Smarty Internal Plugin Compile Append Class | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @package    Smarty | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * @subpackage Compiler | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |      * Compiles code for the {append} tag | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |      * @param  array                                $args      array with attributes from parser | 
					
						
							| 
									
										
										
										
											2015-08-06 01:24:41 +02:00
										 |  |  |      * @param \Smarty_Internal_TemplateCompilerBase $compiler  compiler object | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |      * @param  array                                $parameter array with compilation parameter | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |      * @return string compiled code | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-08-06 01:24:41 +02:00
										 |  |  |     public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-12-28 22:40:13 +00:00
										 |  |  |         // the following must be assigned at runtime because it will be overwritten in parent class
 | 
					
						
							|  |  |  |         $this->required_attributes = array('var', 'value'); | 
					
						
							|  |  |  |         $this->shorttag_order = array('var', 'value'); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $this->optional_attributes = array('scope', 'index'); | 
					
						
							| 
									
										
										
										
											2016-02-14 19:58:55 +01:00
										 |  |  |         $this->mapCache = array(); | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |         // check and get attributes
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $_attr = $this->getAttributes($compiler, $args); | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |         // map to compile assign attributes
 | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |         if (isset($_attr[ 'index' ])) { | 
					
						
							|  |  |  |             $_params[ 'smarty_internal_index' ] = '[' . $_attr[ 'index' ] . ']'; | 
					
						
							|  |  |  |             unset($_attr[ 'index' ]); | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |             $_params[ 'smarty_internal_index' ] = '[]'; | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |         $_new_attr = array(); | 
					
						
							|  |  |  |         foreach ($_attr as $key => $value) { | 
					
						
							|  |  |  |             $_new_attr[] = array($key => $value); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |         // call compile assign
 | 
					
						
							|  |  |  |         return parent::compile($_new_attr, $compiler, $_params); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } |