diff --git a/lib/WebGUI/Export.pm b/lib/WebGUI/Export.pm index 7e065294d..5c9f6d19c 100644 --- a/lib/WebGUI/Export.pm +++ b/lib/WebGUI/Export.pm @@ -18,6 +18,8 @@ package WebGUI::Export; use strict; use WebGUI::Session; use WebGUI::HTML; +use WebGUI::HTTP; +use WebGUI::URL; =head1 NAME @@ -109,12 +111,12 @@ sub generate { # Set alternate Site URL if($self->get('altSiteURL')) { - $session{var}{altSiteURL} = $self->get('altSiteURL'); + WebGUI::URL::setSiteURL($self->get('altSiteURL')); } elsif ($self->get('relativeUrls')) { - $session{var}{altSiteURL} = "./"; + WebGUI::URL::setSiteURL("./"); my $url = $session{page}{urlizedTitle}; while ($url =~ /\//g) { - $session{var}{altSiteURL} .= "../"; + WebGUI::URL::setSiteURL(WebGUI::URL::getSiteURL()."../"); } } # !!! At this point we make URLs absolute only if altSiteURL is not set. @@ -127,14 +129,14 @@ sub generate { if($self->get('stripHTML')) { $content = WebGUI::HTML::html2text($content); - } elsif (not $session{var}{altSiteURL}) { # Implies absolute links + } elsif (not $session{url}{siteURL}) { # Implies absolute links $content = WebGUI::HTML::makeAbsolute($content); } # Restore session %session = %oldSession; delete $session{page}{noHttpHeader}; - delete $session{var}{altSiteURL}; + delete $session{url}{siteURL}; return $content; } diff --git a/lib/WebGUI/Navigation.pm b/lib/WebGUI/Navigation.pm index 4e5316ae1..ebf7ff8a6 100644 --- a/lib/WebGUI/Navigation.pm +++ b/lib/WebGUI/Navigation.pm @@ -234,7 +234,8 @@ sub build { foreach my $property (@interestingPageProperties) { $var->{'page.current.'.$property} = $currentPage->get($property); } - unless (defined $cacheContent && ! $session{var}{altSiteURL}) { + unless (defined $cacheContent && + ! $session{url}{siteURL}) { # Never use cache if an alternate site url is specified. # The loop was not cached my @pages = eval $method; if ($@) { diff --git a/lib/WebGUI/URL.pm b/lib/WebGUI/URL.pm index d7bd1c2c0..24121cad5 100644 --- a/lib/WebGUI/URL.pm +++ b/lib/WebGUI/URL.pm @@ -37,6 +37,7 @@ This package provides URL writing functionality. It is important that all WebGUI $string = WebGUI::URL::escape($string); $url = WebGUI::URL::gateway($url,$pairs); $url = WebGUI::URL::getSiteURL(); + WebGUI::URL::setSiteURL($url); $url = WebGUI::URL::makeCompliant($string); $url = WebGUI::URL::makeAbsolute($url); $url = WebGUI::URL::page($url,$pairs); @@ -168,14 +169,27 @@ sub makeAbsolute { #------------------------------------------------------------------- +=head2 setSiteURL ( ) + +Sets an alternate site url. + +=cut + +sub setSiteURL { + $session{url}{siteURL} = shift; +} + +#------------------------------------------------------------------- + =head2 getSiteURL ( ) -Returns a constructed site url from protocol to gateway. +Returns a constructed site url from protocol to gateway. The returned +value can be overridden using the setSiteURL function. =cut sub getSiteURL { - return $session{var}{altSiteURL} if (defined $session{var}{altSiteURL}); + return $session{url}{siteURL} if (defined $session{url}{siteURL}); my $site; my @sitenames; if (ref $session{config}{sitename} eq "ARRAY") {