| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Smarty plugin | 
					
						
							|  |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @subpackage plugins | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Replace cached inserts with the actual results | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param string $results | 
					
						
							|  |  |  |  * @return string | 
					
						
							| 
									
										
										
										
											2003-10-11 08:55:53 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  | function smarty_core_process_cached_inserts($params, &$smarty) | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |     preg_match_all('!'.$smarty->_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis', | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |                    $params['results'], $match); | 
					
						
							|  |  |  |     list($cached_inserts, $insert_args) = $match; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) { | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |         if ($smarty->debugging) { | 
					
						
							| 
									
										
										
										
											2003-10-11 08:55:53 +00:00
										 |  |  |             $_params = array(); | 
					
						
							| 
									
										
										
										
											2004-09-16 23:07:32 +00:00
										 |  |  |             require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |             $debug_start_time = smarty_core_get_microtime($_params, $smarty); | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $args = unserialize($insert_args[$i]); | 
					
						
							|  |  |  |         $name = $args['name']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (isset($args['script'])) { | 
					
						
							| 
									
										
										
										
											2003-10-11 08:55:53 +00:00
										 |  |  |             $_params = array('resource_name' => $smarty->_dequote($args['script'])); | 
					
						
							| 
									
										
										
										
											2004-09-16 23:07:32 +00:00
										 |  |  |             require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php'); | 
					
						
							| 
									
										
										
										
											2003-10-11 08:55:53 +00:00
										 |  |  |             if(!smarty_core_get_php_resource($_params, $smarty)) { | 
					
						
							|  |  |  |                 return false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             $resource_type = $_params['resource_type']; | 
					
						
							|  |  |  |             $php_resource = $_params['php_resource']; | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if ($resource_type == 'file') { | 
					
						
							| 
									
										
										
										
											2003-07-23 16:14:47 +00:00
										 |  |  |                 $smarty->_include($php_resource, true); | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2003-07-23 16:14:47 +00:00
										 |  |  |                 $smarty->_eval($php_resource); | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |         $function_name = $smarty->_plugins['insert'][$name][0]; | 
					
						
							| 
									
										
										
										
											2003-11-11 22:46:13 +00:00
										 |  |  |         if (empty($args['assign'])) { | 
					
						
							|  |  |  |             $replace = $function_name($args, $smarty); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $smarty->assign($args['assign'], $function_name($args, $smarty)); | 
					
						
							|  |  |  |             $replace = ''; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $params['results'] = str_replace($cached_inserts[$i], $replace, $params['results']); | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |         if ($smarty->debugging) { | 
					
						
							| 
									
										
										
										
											2003-10-11 08:55:53 +00:00
										 |  |  |             $_params = array(); | 
					
						
							| 
									
										
										
										
											2004-09-16 23:07:32 +00:00
										 |  |  |             require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |             $smarty->_smarty_debug_info[] = array('type'      => 'insert', | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |                                                 'filename'  => 'insert_'.$name, | 
					
						
							| 
									
										
										
										
											2003-06-30 00:08:28 +00:00
										 |  |  |                                                 'depth'     => $smarty->_inclusion_depth, | 
					
						
							|  |  |  |                                                 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time); | 
					
						
							| 
									
										
										
										
											2003-05-08 20:21:16 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return $params['results']; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* vim: set expandtab: */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ?>
 |