| 
									
										
										
										
											2009-04-18 14:46:29 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  | * Smarty Internal Plugin Resource Stream | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * Implements the streams as resource for Smarty template | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * @package Smarty | 
					
						
							|  |  |  | * @subpackage TemplateResources | 
					
						
							|  |  |  | * @author Uwe Tews | 
					
						
							|  |  |  | * @author Rodney Rehm | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-18 14:46:29 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  | * Smarty Internal Plugin Resource Stream | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * Implements the streams as resource for Smarty template | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * @link http://php.net/streams | 
					
						
							|  |  |  | * @package Smarty | 
					
						
							|  |  |  | * @subpackage TemplateResources | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled { | 
					
						
							| 
									
										
										
										
											2009-04-18 14:46:29 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +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 | 
					
						
							|  |  |  |     */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  |         if(strpos($source->resource, '://') !== false) { | 
					
						
							|  |  |  |             $source->filepath = $source->resource; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $source->filepath = str_replace(':', '://', $source->resource); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $source->uid = false; | 
					
						
							|  |  |  |         $source->content = $this->getContent($source); | 
					
						
							|  |  |  |         $source->timestamp = false; | 
					
						
							|  |  |  |         $source->exists = !!$source->content; | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-04-18 14:46:29 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  |     * Load template's source from stream into current template object | 
					
						
							|  |  |  |     * | 
					
						
							|  |  |  |     * @param Smarty_Template_Source $source source object | 
					
						
							|  |  |  |     * @return string template source | 
					
						
							|  |  |  |     * @throws SmartyException if source cannot be loaded | 
					
						
							|  |  |  |     */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function getContent(Smarty_Template_Source $source) | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $t = ''; | 
					
						
							|  |  |  |         // the availability of the stream has already been checked in Smarty_Resource::fetch()
 | 
					
						
							|  |  |  |         $fp = fopen($source->filepath, 'r+'); | 
					
						
							|  |  |  |         if ($fp) { | 
					
						
							|  |  |  |             while (!feof($fp) && ($current_line = fgets($fp)) !== false) { | 
					
						
							|  |  |  |                 $t .= $current_line; | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  |             } | 
					
						
							|  |  |  |             fclose($fp); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             return $t; | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  |         } else { | 
					
						
							|  |  |  |             return false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2013-01-06 19:22:48 +00:00
										 |  |  |     * 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 | 
					
						
							|  |  |  |     */ | 
					
						
							| 
									
										
										
										
											2011-10-13 13:10:06 +00:00
										 |  |  |     protected function buildUniqueResourceName(Smarty $smarty, $resource_name) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return get_class($this) . '#' . $resource_name; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-05-14 10:18:10 +00:00
										 |  |  | } |