<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */
/**
 * Handle insert tags
 *
 * @param array $args
 * @return string
 */
function smarty_core_run_insert_handler($params, &$smarty)
{
  require_once(SMARTY_CORE_DIR . 'core.get_microtime.php');
  if ($smarty->debugging) {
    $_params = array();
    $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
  }
  if ($smarty->caching) {
    $_arg_string = serialize($params['args']);
    $_name = $params['args']['name'];
    if (!isset($smarty->_cache_info['insert_tags'][$_name])) {
      $smarty->_cache_info['insert_tags'][$_name] = array('insert', $_name, $smarty->_plugins['insert'][$_name][1], $smarty->_plugins['insert'][$_name][2], !empty($params['args']['script']) ? true : false);
    }
    return $smarty->_smarty_md5 . "{insert_cache $_arg_string}" . $smarty->_smarty_md5;
  } else {
    if (isset($params['args']['script'])) {
      $_params = array('resource_name' => $smarty->_dequote($params['args']['script']));
      require_once(SMARTY_CORE_DIR . 'core.get_php_resource.php');
      if (!smarty_core_get_php_resource($_params, $smarty)) {
        return false;
      }
      if ($_params['resource_type'] == 'file') {
        $smarty->_include($_params['php_resource'], true);
      } else {
        $smarty->_eval($_params['php_resource']);
      }
      unset($params['args']['script']);
    }
    $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0];
    $_content = $_funcname($params['args'], $smarty);
    if ($smarty->debugging) {
      $_params = array();
      require_once(SMARTY_CORE_DIR . 'core.get_microtime.php');
      $smarty->_smarty_debug_info[] = array('type' => 'insert', 'filename' => 'insert_' . $params['args']['name'], 'depth' => $smarty->_inclusion_depth, 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
    }
    if (!empty($params['args']["assign"])) {
      $smarty->assign($params['args']["assign"], $_content);
    } else {
      return $_content;
    }
  }
}
/* vim: set expandtab: */
?>
