/[cvs]/nfo/php/libs/net.php.smarty/core/core.assemble_plugin_filepath.php
ViewVC logotype

Annotation of /nfo/php/libs/net.php.smarty/core/core.assemble_plugin_filepath.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Wed Jun 16 21:58:12 2004 UTC (20 years, 1 month ago) by joko
Branch: MAIN
CVS Tags: HEAD
updated to smarty-2.6.3

1 joko 1.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_DIR . 'core' . DIRECTORY_SEPARATOR . '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     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed