[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/smarty/internals/ -> core.assemble_plugin_filepath.php (source)

   1  <?php
   2  /**
   3   * Smarty plugin
   4   * @package Smarty
   5   * @subpackage plugins
   6   */
   7  
   8  /**
   9   * assemble filepath of requested plugin
  10   *
  11   * @param string $type
  12   * @param string $name
  13   * @return string|false
  14   */
  15  function smarty_core_assemble_plugin_filepath($params, &$smarty)
  16  {
  17      static $_filepaths_cache = array();
  18  
  19      $_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
  20      if (isset($_filepaths_cache[$_plugin_filename])) {
  21          return $_filepaths_cache[$_plugin_filename];
  22      }
  23      $_return = false;
  24  
  25      foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
  26  
  27          $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
  28  
  29          // see if path is relative
  30          if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) {
  31              $_relative_paths[] = $_plugin_dir;
  32              // relative path, see if it is in the SMARTY_DIR
  33              if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
  34                  $_return = SMARTY_DIR . $_plugin_filepath;
  35                  break;
  36              }
  37          }
  38          // try relative to cwd (or absolute)
  39          if (@is_readable($_plugin_filepath)) {
  40              $_return = $_plugin_filepath;
  41              break;
  42          }
  43      }
  44  
  45      if($_return === false) {
  46          // still not found, try PHP include_path
  47          if(isset($_relative_paths)) {
  48              foreach ((array)$_relative_paths as $_plugin_dir) {
  49  
  50                  $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
  51  
  52                  $_params = array('file_path' => $_plugin_filepath);
  53                  require_once (SMARTY_CORE_DIR . 'core.get_include_path.php');
  54                  if(smarty_core_get_include_path($_params, $smarty)) {
  55                      $_return = $_params['new_file_path'];
  56                      break;
  57                  }
  58              }
  59          }
  60      }
  61      $_filepaths_cache[$_plugin_filename] = $_return;
  62      return $_return;
  63  }
  64  
  65  /* vim: set expandtab: */
  66  
  67  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7