56 'file' =>
'smarty_internal_resource_file.php',
57 'string' =>
'smarty_internal_resource_string.php',
58 'extends' =>
'smarty_internal_resource_extends.php',
59 'stream' =>
'smarty_internal_resource_stream.php',
60 'eval' =>
'smarty_internal_resource_eval.php',
61 'php' =>
'smarty_internal_resource_php.php'
126 return get_class($this) .
'#' . $smarty->joined_config_dir .
'#' . $resource_name;
128 return get_class($this) .
'#' . $smarty->joined_template_dir .
'#' . $resource_name;
156 if (isset($smarty->_resource_handlers[$type])) {
157 return $smarty->_resource_handlers[$type];
161 if (isset($smarty->registered_resources[$type])) {
163 $smarty->_resource_handlers[$type] = $smarty->registered_resources[$type];
168 return $smarty->_resource_handlers[$type];
172 if (isset(self::$sysplugins[$type])) {
173 $_resource_class =
'Smarty_Internal_Resource_' . ucfirst($type);
174 if (!class_exists($_resource_class,
false)) {
175 require SMARTY_SYSPLUGINS_DIR . self::$sysplugins[$type];
177 return $smarty->_resource_handlers[$type] =
new $_resource_class();
181 $_resource_class =
'Smarty_Resource_' . ucfirst($type);
183 if (class_exists($_resource_class,
false)) {
184 return $smarty->_resource_handlers[$type] =
new $_resource_class();
187 "smarty_resource_{$type}_source",
188 "smarty_resource_{$type}_timestamp",
189 "smarty_resource_{$type}_secure",
190 "smarty_resource_{$type}_trusted"
193 return self::load($smarty, $type);
198 $_known_stream = stream_get_wrappers();
199 if (in_array($type, $_known_stream)) {
201 if (is_object($smarty->security_policy)) {
202 $smarty->security_policy->isTrustedStream($type);
224 if (preg_match(
'/^([A-Za-z0-9_\-]{2,})[:]/', $resource_name, $match)) {
226 $name = substr($resource_name, strlen($match[0]));
230 $type = $default_resource;
231 $name = $resource_name;
234 return array($name, $type);
256 $smarty = isset($template->smarty) ? $template->smarty : $template;
257 list($name, $type) = self::parseResourceName($template_resource, $smarty->default_resource_type);
261 $_file_is_dotted = $name[0] ==
'.' && ($name[1] ==
'.' || $name[1] ==
'/');
262 if ($template instanceof
Smarty_Internal_Template && $_file_is_dotted && ($template->source->type ==
'file' || $template->parent->source->type ==
'extends')) {
263 $name = dirname($template->source->filepath) . DS . $name;
265 return $resource->buildUniqueResourceName($smarty, $name);