Example #1
0
 function url_to_absolute($baseUrl, $relativeUrl)
 {
     // If relative URL has a scheme, clean path and return.
     $r = split_url($relativeUrl);
     if ($r === FALSE) {
         return FALSE;
     }
     if (!empty($r['scheme'])) {
         if (!empty($r['path']) && $r['path'][0] == '/') {
             $r['path'] = url_remove_dot_segments($r['path']);
         }
         return join_url($r);
     }
     // Make sure the base URL is absolute.
     $b = split_url($baseUrl);
     if ($b === FALSE || empty($b['scheme']) || empty($b['host'])) {
         return FALSE;
     }
     $r['scheme'] = $b['scheme'];
     // If relative URL has an authority, clean path and return.
     if (isset($r['host'])) {
         if (!empty($r['path'])) {
             $r['path'] = url_remove_dot_segments($r['path']);
         }
         return join_url($r);
     }
     unset($r['port']);
     unset($r['user']);
     unset($r['pass']);
     // Copy base authority.
     $r['host'] = $b['host'];
     if (isset($b['port'])) {
         $r['port'] = $b['port'];
     }
     if (isset($b['user'])) {
         $r['user'] = $b['user'];
     }
     if (isset($b['pass'])) {
         $r['pass'] = $b['pass'];
     }
     // If relative URL has no path, use base path
     if (empty($r['path'])) {
         if (!empty($b['path'])) {
             $r['path'] = $b['path'];
         }
         if (!isset($r['query']) && isset($b['query'])) {
             $r['query'] = $b['query'];
         }
         return join_url($r);
     }
     // If relative URL path doesn't start with /, merge with base path
     if ($r['path'][0] != '/') {
         $base = mb_strrchr($b['path'], '/', TRUE, 'UTF-8');
         if ($base === FALSE) {
             $base = '';
         }
         $r['path'] = $base . '/' . $r['path'];
     }
     $r['path'] = url_remove_dot_segments($r['path']);
     return join_url($r);
 }
Example #2
0
function smarty_function_javascript($params, &$smarty)
{
    if ($params['file']) {
        return '<script type="text/javascript" src="' . join_url(SilkRequest::get_calculated_url_base(true), $params['file']) . '"></script>';
    }
}