| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Smarty Internal Plugin Resource Eval | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @subpackage TemplateResources | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * @author Uwe Tews | 
					
						
							|  |  |  |  * @author Rodney Rehm | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Smarty Internal Plugin Resource Eval | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Implements the strings as resource for Smarty template | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * {@internal unlike string-resources the compiled state of eval-resources is NOT saved for subsequent access}} | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @subpackage TemplateResources | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | class Smarty_Internal_Resource_Eval extends Smarty_Resource_Recompiled { | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * populate Source Object with meta data from Resource | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param Smarty_Template_Source   $source    source object | 
					
						
							|  |  |  |      * @param Smarty_Internal_Template $_template template object | 
					
						
							|  |  |  |      * @return void | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $source->uid = $source->filepath = sha1($source->name); | 
					
						
							|  |  |  |         $source->timestamp = false; | 
					
						
							|  |  |  |         $source->exists = true; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * Load template's source from $resource_name into current template object | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |      * @uses decode() to decode base64 and urlencoded template_resources | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * @param Smarty_Template_Source $source source object | 
					
						
							|  |  |  |      * @return string template source | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function getContent(Smarty_Template_Source $source) | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         return $this->decode($source->name); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * decode base64 and urlencode | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string $string template_resource to decode | 
					
						
							|  |  |  |      * @return string decoded template_resource | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected function decode($string) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							|  |  |  |         // decode if specified
 | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |         if (($pos = strpos($string, ':')) !== false) { | 
					
						
							|  |  |  |             if (!strncmp($string, 'base64', 6)) { | 
					
						
							|  |  |  |                 return base64_decode(substr($string, 7)); | 
					
						
							|  |  |  |             } elseif (!strncmp($string, 'urlencode', 9)) { | 
					
						
							|  |  |  |                 return urldecode(substr($string, 10)); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |          | 
					
						
							|  |  |  |         return $string; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * modify resource_name according to resource handlers specifications | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param Smarty $smarty        Smarty instance | 
					
						
							|  |  |  |      * @param string $resource_name resource_name to make unique | 
					
						
							|  |  |  |      * @return string unique resource name | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected function buildUniqueResourceName(Smarty $smarty, $resource_name) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return get_class($this) . '#' .$this->decode($resource_name); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * Determine basename for compiled filename | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param Smarty_Template_Source $source source object | 
					
						
							|  |  |  |      * @return string resource's basename | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     protected function getBasename(Smarty_Template_Source $source) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return ''; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-10-01 13:19:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ?>
 |