XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
core.get_php_resource.php
Go to the documentation of this file.
1 <?php
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 ?>