urlto(): if $from is undef, return a local path, not an absolute URL

master
Simon McVittie 2010-11-22 23:33:13 +00:00
parent f032bce791
commit 4c224ae143
2 changed files with 10 additions and 0 deletions

View File

@ -1148,6 +1148,12 @@ sub urlto ($$;$) {
return $config{url}.beautify_urlpath("/".$to); return $config{url}.beautify_urlpath("/".$to);
} }
if (! defined $from) {
my $u = $local_url;
$u =~ s{/$}{};
return $u.beautify_urlpath("/".$to);
}
my $link = abs2rel($to, dirname(htmlpage($from))); my $link = abs2rel($to, dirname(htmlpage($from)));
return beautify_urlpath($link); return beautify_urlpath($link);

View File

@ -988,6 +988,10 @@ Construct a relative url to the first parameter from the page named by the
second. The first parameter can be either a page name, or some other second. The first parameter can be either a page name, or some other
destination file, as registered by `will_render`. destination file, as registered by `will_render`.
If the second parameter is `undef`, the URL will be valid from any page on the
wiki, or from the CGI; if possible it'll be a path starting with `/`, but an
absolute URL will be used if the wiki and the CGI are on different servers.
If the third parameter is passed and is true, an absolute url will be If the third parameter is passed and is true, an absolute url will be
constructed instead of the default relative url. constructed instead of the default relative url.