phpDocumentor Smarty
plugins
[ class tree: Smarty ] [ index: Smarty ] [ all elements ]

Source for file core.process_cached_inserts.php

Documentation is available at core.process_cached_inserts.php

  1. <?php
  2. /**
  3.  * Smarty plugin
  4.  * @package Smarty
  5.  * @subpackage plugins
  6.  */
  7.  
  8. /**
  9.  * Replace cached inserts with the actual results
  10.  *
  11.  * @param string $results 
  12.  * @return string 
  13.  */
  14. function smarty_core_process_cached_inserts($params&$smarty)
  15. {
  16.     preg_match_all('!'.$smarty->_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis',
  17.                    $params['results']$match);
  18.     list($cached_inserts$insert_args$match;
  19.  
  20.     for ($i 0$for_max count($cached_inserts)$i $for_max$i++{
  21.         if ($smarty->debugging{
  22.             $_params array();
  23.             require_once(SMARTY_DIR 'core' DIRECTORY_SEPARATOR 'core.get_microtime.php');
  24.             $debug_start_time smarty_core_get_microtime($_params$smarty);
  25.         }
  26.  
  27.         $args unserialize($insert_args[$i]);
  28.         $name $args['name'];
  29.  
  30.         if (isset($args['script'])) {
  31.             $_params array('resource_name' => $smarty->_dequote($args['script']));
  32.             require_once(SMARTY_DIR 'core' DIRECTORY_SEPARATOR 'core.get_php_resource.php');
  33.             if(!smarty_core_get_php_resource($_params$smarty)) {
  34.                 return false;
  35.             }
  36.             $resource_type $_params['resource_type'];
  37.             $php_resource $_params['php_resource'];
  38.  
  39.  
  40.             if ($resource_type == 'file'{
  41.                 $smarty->_include($php_resourcetrue);
  42.             else {
  43.                 $smarty->_eval($php_resource);
  44.             }
  45.         }
  46.  
  47.         $function_name $smarty->_plugins['insert'][$name][0];
  48.         if (empty($args['assign'])) {
  49.             $replace $function_name($args$smarty);
  50.         else {
  51.             $smarty->assign($args['assign']$function_name($args$smarty));
  52.             $replace '';
  53.         }
  54.  
  55.         $params['results'str_replace($cached_inserts[$i]$replace$params['results']);
  56.         if ($smarty->debugging{
  57.             $_params array();
  58.             require_once(SMARTY_DIR 'core' DIRECTORY_SEPARATOR 'core.get_microtime.php');
  59.             $smarty->_smarty_debug_info[array('type'      => 'insert',
  60.                                                 'filename'  => 'insert_'.$name,
  61.                                                 'depth'     => $smarty->_inclusion_depth,
  62.                                                 'exec_time' => smarty_core_get_microtime($_params$smarty$debug_start_time);
  63.         }
  64.     }
  65.  
  66.     return $params['results'];
  67. }
  68.  
  69. /* vim: set expandtab: */
  70.  
  71. ?>

Documentation generated on Tue, 24 Oct 2006 09:21:56 -0500 by phpDocumentor 1.3.1