| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * Smarty Internal Plugin Compile Append | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * Compiles the {append} tag | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @subpackage Compiler | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +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
										 |  |  |  * | 
					
						
							|  |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @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
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |      * @param  array  $args      array with attributes from parser | 
					
						
							|  |  |  |      * @param  object $compiler  compiler object | 
					
						
							|  |  |  |      * @param  array  $parameter array with compilation parameter | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |      * @return string compiled code | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function compile($args, $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'); | 
					
						
							| 
									
										
										
										
											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
 | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |         if (isset($_attr['index'])) { | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |             $_params['smarty_internal_index'] = '[' . $_attr['index'] . ']'; | 
					
						
							|  |  |  |             unset($_attr['index']); | 
					
						
							| 
									
										
										
										
											2009-04-04 15:46:09 +00:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |             $_params['smarty_internal_index'] = '[]'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $_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
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |