[ Index ]
 

Code source de phpMyVisites 2.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/libs/smarty/internals/ -> core.get_php_resource.php (source)

   1  <?php
   2  /**
   3   * Smarty plugin
   4   * @package Smarty
   5   * @subpackage plugins
   6   */
   7  
   8  /**
   9   * Retrieves PHP script resource
  10   *
  11   * sets $php_resource to the returned resource
  12   * @param string $resource
  13   * @param string $resource_type
  14   * @param  $php_resource
  15   * @return boolean
  16   */
  17  
  18  function smarty_core_get_php_resource(&$params, &$smarty)
  19  {
  20  
  21      $params['resource_base_path'] = $smarty->trusted_dir;
  22      $smarty->_parse_resource_name($params, $smarty);
  23  
  24      /*
  25       * Find out if the resource exists.
  26       */
  27  
  28      if ($params['resource_type'] == 'file') {
  29          $_readable = false;
  30          if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
  31              $_readable = true;
  32          } else {
  33              // test for file in include_path
  34              $_params = array('file_path' => $params['resource_name']);
  35              require_once (SMARTY_CORE_DIR . 'core.get_include_path.php');
  36              if(smarty_core_get_include_path($_params, $smarty)) {
  37                  $_include_path = $_params['new_file_path'];
  38                  $_readable = true;
  39              }
  40          }
  41      } else if ($params['resource_type'] != 'file') {
  42          $_template_source = null;
  43          $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
  44              && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
  45                                      array($params['resource_name'], &$_template_source, &$smarty));
  46      }
  47  
  48      /*
  49       * Set the error function, depending on which class calls us.
  50       */
  51      if (method_exists($smarty, '_syntax_error')) {
  52          $_error_funcc = '_syntax_error';
  53      } else {
  54          $_error_funcc = 'trigger_error';
  55      }
  56  
  57      if ($_readable) {
  58          if ($smarty->security) {
  59              require_once (SMARTY_CORE_DIR . 'core.is_trusted.php');
  60              if (!smarty_core_is_trusted($params, $smarty)) {
  61                  $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
  62                  return false;
  63              }
  64          }
  65      } else {
  66          $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
  67          return false;
  68      }
  69  
  70      if ($params['resource_type'] == 'file') {
  71          $params['php_resource'] = $params['resource_name'];
  72      } else {
  73          $params['php_resource'] = $_template_source;
  74      }
  75      return true;
  76  }
  77  
  78  /* vim: set expandtab: */
  79  
  80  ?>


Généré le : Mon Nov 26 14:10:01 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics