| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Smarty Method GetTemplateVars | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Smarty::getTemplateVars() method | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @package    Smarty | 
					
						
							|  |  |  |  * @subpackage PluginsInternal | 
					
						
							|  |  |  |  * @author     Uwe Tews | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class Smarty_Internal_Method_GetTemplateVars | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Valid for all objects | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var int | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $objMap = 7; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Returns a single or all template variables | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @api  Smarty::getTemplateVars() | 
					
						
							|  |  |  |      * @link http://www.smarty.net/docs/en/api.get.template.vars.tpl | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |      * @param  string                                                 $varName        variable name or null | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |      * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $_ptr           optional pointer to data object | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |      * @param  bool                                                   $searchParents include parent templates? | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @return mixed variable value or or array of variables | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |     public function getTemplateVars(Smarty_Internal_Data $data, $varName = null, Smarty_Internal_Data $_ptr = null, $searchParents = true) | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |         if (isset($varName)) { | 
					
						
							|  |  |  |             $_var = $this->_getVariable($data, $varName, $_ptr, $searchParents, false); | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |             if (is_object($_var)) { | 
					
						
							|  |  |  |                 return $_var->value; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 return null; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $_result = array(); | 
					
						
							|  |  |  |             if ($_ptr === null) { | 
					
						
							|  |  |  |                 $_ptr = $data; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             while ($_ptr !== null) { | 
					
						
							|  |  |  |                 foreach ($_ptr->tpl_vars AS $key => $var) { | 
					
						
							|  |  |  |                     if (!array_key_exists($key, $_result)) { | 
					
						
							|  |  |  |                         $_result[$key] = $var->value; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 // not found, try at parent
 | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |                 if ($searchParents) { | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |                     $_ptr = $_ptr->parent; | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                     $_ptr = null; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |             if ($searchParents && isset(Smarty::$global_tpl_vars)) { | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |                 foreach (Smarty::$global_tpl_vars AS $key => $var) { | 
					
						
							|  |  |  |                     if (!array_key_exists($key, $_result)) { | 
					
						
							|  |  |  |                         $_result[$key] = $var->value; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             return $_result; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * gets the object of a Smarty variable | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data | 
					
						
							|  |  |  |      * @param string                                                 $varName       the name of the Smarty variable | 
					
						
							|  |  |  |      * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $_ptr           optional pointer to data object | 
					
						
							|  |  |  |      * @param bool                                                   $searchParents search also in parent data | 
					
						
							|  |  |  |      * @param bool                                                    $errorEnable | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return \Smarty_Variable | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function _getVariable(Smarty_Internal_Data $data, $varName, Smarty_Internal_Data $_ptr = null, $searchParents = true, $errorEnable = true) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if ($_ptr === null) { | 
					
						
							|  |  |  |             $_ptr = $data; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         while ($_ptr !== null) { | 
					
						
							|  |  |  |             if (isset($_ptr->tpl_vars[$varName])) { | 
					
						
							|  |  |  |                 // found it, return it
 | 
					
						
							|  |  |  |                 return $_ptr->tpl_vars[$varName]; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             // not found, try at parent
 | 
					
						
							|  |  |  |             if ($searchParents) { | 
					
						
							|  |  |  |                 $_ptr = $_ptr->parent; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 $_ptr = null; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (isset(Smarty::$global_tpl_vars[$varName])) { | 
					
						
							|  |  |  |             // found it, return it
 | 
					
						
							|  |  |  |             return Smarty::$global_tpl_vars[$varName]; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         /* @var \Smarty $smarty */ | 
					
						
							|  |  |  |         $smarty = isset($data->smarty) ? $data->smarty : $data; | 
					
						
							|  |  |  |         if ($smarty->error_unassigned && $errorEnable) { | 
					
						
							|  |  |  |             // force a notice
 | 
					
						
							|  |  |  |             $x = $$varName; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return new Smarty_Undefined_Variable; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  | } |