From 5ee8369c5e13dc616aaa8c3e2485f43d8604824b Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Thu, 3 Nov 2005 19:17:34 +0000 Subject: [PATCH] fixed SCRIPT_NAME with a session variable from $r->uri --- lib/WebGUI.pm | 3 ++- lib/WebGUI/Asset.pm | 2 +- lib/WebGUI/Asset/Post/Thread.pm | 2 +- lib/WebGUI/Auth.pm | 2 +- lib/WebGUI/Icon.pm | 32 ++++++++++++++++---------------- lib/WebGUI/Macro/PageUrl.pm | 2 +- lib/WebGUI/Macro/r_printable.pm | 2 +- lib/WebGUI/Operation/WebGUI.pm | 2 +- lib/WebGUI/URL.pm | 4 ++-- 9 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index bb9c3cbeb..b0b52f925 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -50,6 +50,7 @@ sub handler { sub contentHandler { WebGUI::Session::open($s->dir_config('WebguiRoot'),$r->dir_config('WebguiConfig'),$r); + $session{wguri} = $r->uri; $r->print(page(undef,undef,1)); # Use existing session WebGUI::Session::close(); return Apache2::Const::OK; @@ -133,7 +134,7 @@ sub page { $method = "www_".$method; $output = eval{$asset->$method()}; if ($@) { - WebGUI::ErrorHandler::warn("Couldn't call method ".$method." on asset for ".$session{env}{PATH_INFO}." Root cause: ".$@); + WebGUI::ErrorHandler::warn("Couldn't call method ".$method." on asset for ".$session{wguri}()." Root cause: ".$@); $output = $asset->www_view; } else { if ($output eq "" && $method ne "view") { diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 759f8aaf2..ab596f557 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1083,7 +1083,7 @@ A specific revision to instanciate. By default we instanciate the newest publish sub newByUrl { my $class = shift; - my $url = shift || $session{env}{SCRIPT_NAME}; + my $url = shift || $session{wguri}; my $revisionDate = shift; $url = lc($url); $url =~ s/\/$//; diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index 711697800..529053757 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -666,7 +666,7 @@ sub view { } else { $sql .= "asset.lineage"; } - my $currentPageUrl = $session{env}{SCRIPT_NAME}; + my $currentPageUrl = $session{wguri}; $currentPageUrl =~ s/^\///; $p->setDataByQuery($sql, undef, undef, undef, "url", $currentPageUrl); foreach my $dataSet (@{$p->getPageData()}) { diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index 4fca13c6f..b8e1437e0 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -381,7 +381,7 @@ sub displayLogin { my $method = $_[0] || "login"; my $vars = $_[1]; unless ($session{form}{op} eq "auth") { - WebGUI::Session::setScratch("redirectAfterLogin",WebGUI::URL::gateway($session{env}{SCRIPT_NAME},$session{env}{QUERY_STRING})); + WebGUI::Session::setScratch("redirectAfterLogin",WebGUI::URL::gateway($session{wguri},$session{env}{QUERY_STRING})); } $vars->{title} = WebGUI::International::get(66); my $action; diff --git a/lib/WebGUI/Icon.pm b/lib/WebGUI/Icon.pm index d5c8298e7..c3830ccec 100644 --- a/lib/WebGUI/Icon.pm +++ b/lib/WebGUI/Icon.pm @@ -101,7 +101,7 @@ The URL to any page. Defaults to the current page. sub copyIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Copy','Icon').''; return $output; @@ -125,7 +125,7 @@ The URL to any page. Defaults to the current page. sub cutIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Cut','Icon').''; return $output; @@ -158,7 +158,7 @@ sub deleteIcon { $confirmText = qq| onclick="return confirm('$confirmText')" |; } - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Delete','Icon').''; @@ -195,7 +195,7 @@ The URL to any page. Defaults to the current page. sub editIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Edit','Icon').''; return $output; @@ -219,7 +219,7 @@ The URL to any page. Defaults to the current page. sub exportIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; # TODO Change icon to Jeffs export icon $output .= ''.WebGUI::International::get('Export','Icon').''; @@ -292,7 +292,7 @@ The URL to any page. Defaults to the current page. sub lockedIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('locked','Icon').''; return $output; @@ -316,7 +316,7 @@ The URL to any page. Defaults to the current page. sub manageIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Manage','Icon').''; return $output; @@ -340,7 +340,7 @@ The URL to any page. Defaults to the current page. sub moveBottomIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move To Bottom','Icon').''; return $output; @@ -364,7 +364,7 @@ The URL to any page. Defaults to the current page. sub moveDownIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move Down','Icon').''; return $output; @@ -388,7 +388,7 @@ The URL to any page. Defaults to the current page. sub moveLeftIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move Left','Icon').''; return $output; @@ -412,7 +412,7 @@ The URL to any page. Defaults to the current page. sub moveRightIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move Right','Icon').''; return $output; @@ -436,7 +436,7 @@ The URL to any page. Defaults to the current page. sub moveTopIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move To Top','Icon').''; return $output; @@ -460,7 +460,7 @@ The URL to any page. Defaults to the current page. sub moveUpIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Move Up','Icon').''; return $output; @@ -496,7 +496,7 @@ The URL to any page. Defaults to the current page. sub pasteIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Paste','Icon').''; return $output; @@ -520,7 +520,7 @@ The URL to any page. Defaults to the current page. sub shortcutIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('Create Shortcut','Icon').''; return $output; @@ -544,7 +544,7 @@ The URL to any page. Defaults to the current page. sub viewIcon { my ($output, $pageURL); - $pageURL = $_[1] || $session{env}{SCRIPT_NAME}; + $pageURL = $_[1] || $session{wguri}; $output = ''; $output .= ''.WebGUI::International::get('View','Icon').''; return $output; diff --git a/lib/WebGUI/Macro/PageUrl.pm b/lib/WebGUI/Macro/PageUrl.pm index 6091160dd..0015487fc 100644 --- a/lib/WebGUI/Macro/PageUrl.pm +++ b/lib/WebGUI/Macro/PageUrl.pm @@ -16,7 +16,7 @@ use WebGUI::URL; #------------------------------------------------------------------- sub process { - my $pathinfo = $session{env}{SCRIPT_NAME}; + my $pathinfo = $session{wguri}; $pathinfo =~ s#^/##; return WebGUI::URL::getScriptURL().$pathinfo; } diff --git a/lib/WebGUI/Macro/r_printable.pm b/lib/WebGUI/Macro/r_printable.pm index 54f377863..ed355e0fe 100644 --- a/lib/WebGUI/Macro/r_printable.pm +++ b/lib/WebGUI/Macro/r_printable.pm @@ -26,7 +26,7 @@ sub process { if ($session{env}{REQUEST_URI} =~ /op\=/) { $append = 'op2='.WebGUI::URL::escape($append); } - $temp = WebGUI::URL::gateway($session{env}{SCRIPT_NAME},$append); + $temp = WebGUI::URL::gateway($session{wguri},$append); $temp =~ s/\/\//\//; $temp = WebGUI::URL::append($temp,$session{env}{QUERY_STRING}); if ($param[1] ne "") { diff --git a/lib/WebGUI/Operation/WebGUI.pm b/lib/WebGUI/Operation/WebGUI.pm index 54fac04df..b0d096fd8 100644 --- a/lib/WebGUI/Operation/WebGUI.pm +++ b/lib/WebGUI/Operation/WebGUI.pm @@ -95,7 +95,7 @@ sub www_setup { WebGUI::Setting::set('companyURL',WebGUI::FormProcessor::url("companyURL")); WebGUI::Setting::set('companyEmail',WebGUI::FormProcessor::email("companyEmail")); WebGUI::Setting::remove('specialState'); - WebGUI::HTTP::setRedirect($session{env}{SCRIPT_NAME}); + WebGUI::HTTP::setRedirect($session{wguri}); return ""; } else { $output .= 'Admin Account'; diff --git a/lib/WebGUI/URL.pm b/lib/WebGUI/URL.pm index 3cf10ccff..945a5276a 100644 --- a/lib/WebGUI/URL.pm +++ b/lib/WebGUI/URL.pm @@ -178,7 +178,7 @@ sub getScriptURL { if (exists $session{config}{scripturl}) { $scripturl = $session{config}{scripturl}; } else { - $scripturl = $session{env}{SCRIPT_NAME}; + $scripturl = $session{wguri}; } $scripturl .= '/'; return $scripturl; @@ -267,7 +267,7 @@ sub page { if ($session{asset}) { $pathinfo = $session{asset}->get("url"); } else { - $pathinfo = $session{env}{SCRIPT_NAME}; + $pathinfo = $session{wguri}; $pathinfo =~ s/^\/(.*)/$1/; } $url .= $pathinfo;