Example #1
0
 /**
  * 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);
 }