/** * modify template_resource according to resource handlers specifications * * @param \Smarty_Internal_Template|\Smarty $obj Smarty instance * @param string $template_resource template_resource to extract resource handler and name of * * @return string unique resource name */ public static function getUniqueTemplateName($obj, $template_resource) { $smarty = $obj->_getSmartyObj(); list($name, $type) = self::parseResourceName($template_resource, $smarty->default_resource_type); // TODO: optimize for Smarty's internal resource types $resource = Smarty_Resource::load($smarty, $type); // go relative to a given template? $_file_is_dotted = $name[0] == '.' && ($name[1] == '.' || $name[1] == '/'); if ($obj->_isTplObj() && $_file_is_dotted && ($obj->source->type == 'file' || $obj->parent->source->type == 'extends')) { $name = $smarty->_realpath(dirname($obj->parent->source->filepath) . $smarty->ds . $name); } return $resource->buildUniqueResourceName($smarty, $name); }