function Smarty::_parse_resource_name in Quiz 6.5
Same name and namespace in other branches
- 6.6 includes/moodle/lib/smarty/Smarty.class.php \Smarty::_parse_resource_name()
parse out the type and name from the resource
Parameters
string $resource_base_path:
string $resource_name:
string $resource_type:
Return value
boolean
1 call to Smarty::_parse_resource_name()
- Smarty::_fetch_resource_info in includes/
moodle/ lib/ smarty/ Smarty.class.php - fetch the template info. Gets timestamp, and source if get_source is true
File
- includes/
moodle/ lib/ smarty/ Smarty.class.php, line 1609
Class
- Smarty
- @package Smarty
Code
function _parse_resource_name(&$params) {
// split tpl_path by the first colon
$_resource_name_parts = explode(':', $params['resource_name'], 2);
if (count($_resource_name_parts) == 1) {
// no resource type given
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $_resource_name_parts[0];
}
else {
if (strlen($_resource_name_parts[0]) == 1) {
// 1 char is not resource type, but part of filepath
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $params['resource_name'];
}
else {
$params['resource_type'] = $_resource_name_parts[0];
$params['resource_name'] = $_resource_name_parts[1];
}
}
if ($params['resource_type'] == 'file') {
if (!preg_match('/^([\\/\\\\]|[a-zA-Z]:[\\/\\\\])/', $params['resource_name'])) {
// relative pathname to $params['resource_base_path']
// use the first directory where the file is found
foreach ((array) $params['resource_base_path'] as $_curr_path) {
$_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
if (file_exists($_fullpath) && is_file($_fullpath)) {
$params['resource_name'] = $_fullpath;
return true;
}
// didn't find the file, try include_path
$_params = array(
'file_path' => $_fullpath,
);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $this)) {
$params['resource_name'] = $_params['new_file_path'];
return true;
}
}
return false;
}
else {
/* absolute path */
return file_exists($params['resource_name']);
}
}
elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
$_params = array(
'type' => $params['resource_type'],
);
require_once SMARTY_CORE_DIR . 'core.load_resource_plugin.php';
smarty_core_load_resource_plugin($_params, $this);
}
return true;
}