package WebGUI::Macro::PageUrl;

#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com                     info@plainblack.com
#-------------------------------------------------------------------

use strict;
use URI;

=head1 NAME

Package WebGUI::Macro::Page

=head1 DESCRIPTION

Macro for displaying the url for the current asset.

=head2 process ( $session, $url, $query )

process is really a wrapper around $session->url->page();

=head3 $session

The current WebGUI session object.

=head3 $url

A URL to safely append to the end of the page URL.

=head3 $query

The post query (?) parameters you'd like to add to the URL.

=cut

#-------------------------------------------------------------------
sub process {
	my $session = shift;
	my $url = shift;
    my $query = shift;
	my $pageUrl = $session->url->page($query);
	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;
}


1;

