X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FCGI.pm;h=e1645f04c387dd0f6c9fc982d6ffa2cd9be5f767;hb=59dabb780e7fa25290392bb3c40d3f87b404463d;hp=f33a718fa68711b8dda79cd4a1f70c1716776d33;hpb=40a7b3dc653e099f7bd0bd762b649b04c4432db2;p=freeside.git diff --git a/FS/FS/CGI.pm b/FS/FS/CGI.pm index f33a718fa..e1645f04c 100644 --- a/FS/FS/CGI.pm +++ b/FS/FS/CGI.pm @@ -227,9 +227,15 @@ sub popurl { =cut sub rooturl { - # better to start with the client-provided URL - my $cgi = &FS::UID::cgi; - my $url_string = $cgi->isa('Apache') ? $cgi->uri : $cgi->url; + my $url_string; + if ( scalar(@_) ) { + $url_string = shift; + } else { + # better to start with the client-provided URL + my $cgi = &FS::UID::cgi; + $url_string = $cgi->isa('Apache') ? $cgi->uri : $cgi->url; + } + $url_string =~ s/\?.*//; #even though this is kludgy @@ -238,18 +244,13 @@ sub rooturl { $url_string =~ s{ / - (browse|config|docs|edit|graph|misc|search|view|pref|rt|elements) - / - (process/)? + (browse|config|docs|edit|graph|misc|search|view|pref|rt|torrus) + (/process)? ([\w\-\.\/]*) $ } {}x; - #elements because of progress-popup.html... - #XXX remove anything from elements that is called directly & prevent - #those pages from being served up - $url_string .= '/' unless $url_string =~ /\/$/; $url_string;