Mercurial > epgrec.yaz
comparison Smarty/internals/core.get_php_resource.php @ 1:f5a9f0eb4858
deleted: LICENSE.ja
author | Sushi-k <epgrec@park.mda.or.jp> |
---|---|
date | Wed, 08 Jul 2009 11:44:50 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:96312e6ab8d4 | 1:f5a9f0eb4858 |
---|---|
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 ?> |