| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Extends All Resource | 
					
						
							|  |  |  |  * Resource Implementation modifying the extends-Resource to walk | 
					
						
							|  |  |  |  * through the template_dirs and inherit all templates of the same name | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * @package Resource-examples | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @author  Rodney Rehm | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * populate Source Object with meta data from Resource | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |      * @param  Smarty_Template_Source   $source    source object | 
					
						
							|  |  |  |      * @param  Smarty_Internal_Template $_template template object | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |     public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         $uid = ''; | 
					
						
							|  |  |  |         $sources = array(); | 
					
						
							|  |  |  |         $exists = true; | 
					
						
							|  |  |  |         foreach ($_template->smarty->getTemplateDir() as $key => $directory) { | 
					
						
							|  |  |  |             try { | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |                 $s = Smarty_Resource::source(null, $source->smarty, '[' . $key . ']' . $source->name); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |                 if (!$s->exists) { | 
					
						
							|  |  |  |                     continue; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 $sources[$s->uid] = $s; | 
					
						
							|  |  |  |                 $uid .= $s->filepath; | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |             } | 
					
						
							|  |  |  |             catch (SmartyException $e) { | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         if (!$sources) { | 
					
						
							|  |  |  |             $source->exists = false; | 
					
						
							|  |  |  |             $source->template = $_template; | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             return; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $sources = array_reverse($sources, true); | 
					
						
							|  |  |  |         reset($sources); | 
					
						
							|  |  |  |         $s = current($sources); | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $source->components = $sources; | 
					
						
							|  |  |  |         $source->filepath = $s->filepath; | 
					
						
							|  |  |  |         $source->uid = sha1($uid); | 
					
						
							|  |  |  |         $source->exists = $exists; | 
					
						
							|  |  |  |         if ($_template && $_template->smarty->compile_check) { | 
					
						
							|  |  |  |             $source->timestamp = $s->timestamp; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         // need the template at getContent()
 | 
					
						
							|  |  |  |         $source->template = $_template; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | } |