the Slash_gatewayUrl and PageUrl macros now accept optional URL arguments

This commit is contained in:
Colin Kuskie 2007-01-23 21:49:34 +00:00
parent dfb19389a7
commit 66b59adde8
7 changed files with 121 additions and 15 deletions

View file

@ -11,6 +11,7 @@ package WebGUI::Macro::PageUrl;
#-------------------------------------------------------------------
use strict;
use URI;
=head1 NAME
@ -20,16 +21,33 @@ Package WebGUI::Macro::Page
Macro for displaying the url for the current asset.
=head2 process ( )
=head2 process ( $session, $url )
process is really a wrapper around $session->url->page();
=head3 $session
The current WebGUI session variable.
=head3 $url
A URL to safely append to the end of the page URL.
=cut
#-------------------------------------------------------------------
sub process {
my $session = shift;
return $session->url->page();
my $url = shift;
my $pageUrl = $session->url->page();
if ($url) {
my $uri = URI->new($pageUrl);
##Append the requested URL to the path part of the URL
$uri->path(join "/", $uri->path, $url);
$pageUrl = $uri->as_string;
}
$pageUrl =~ tr{/}{/}s; ##Remove duplicate slashes.
return $pageUrl;
}

View file

@ -20,16 +20,25 @@ Package WebGUI::Macro::Slash_gatewayUrl
Macro for returning the gateway URL (defined in the WebGUI config file) to the site.
=head2 process ( )
=head2 process ( $session, $url )
process is really a wrapper around $session->url->gateway();
=head3 $session
A WebGUI session variable.
=head3 $url
A url which will be passed to $session->url->gateway().
=cut
#-------------------------------------------------------------------
sub process {
my $session = shift;
return $session->url->gateway();
my $url = shift;
return $session->url->gateway($url);
}