Source for file core.assemble_plugin_filepath.php

Documentation is available at core.assemble_plugin_filepath.php

  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. ?>

Documentation generated on Sun, 09 Mar 2008 23:51:05 -0300 by phpDocumentor 1.4.0

SourceForge.net Logo Support This Project