--- rat/lonwrapper.pm 2012/11/29 20:13:49 1.43 +++ rat/lonwrapper.pm 2013/09/07 19:58:08 1.44 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Wrapper for external and binary files as standalone resources # -# $Id: lonwrapper.pm,v 1.43 2012/11/29 20:13:49 raeburn Exp $ +# $Id: lonwrapper.pm,v 1.44 2013/09/07 19:58:08 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,7 +40,7 @@ use Apache::lonextresedit(); # ================================================================ Main Handler sub wrapper { - my ($url,$brcrum) = @_; + my ($url,$brcrum,$absolute) = @_; my $forcereg; unless ($env{'form.folderpath'}) { @@ -54,6 +54,9 @@ sub wrapper { if (ref($brcrum) eq 'ARRAY') { $args->{'bread_crumbs'} = $brcrum; } + if ($absolute) { + $args->{'use_absolute'} = $absolute; + } my $startpage = Apache::loncommon::start_page('Menu',undef,$args); my $endpage = Apache::loncommon::end_page(); @@ -103,7 +106,7 @@ sub handler { return OK if $r->header_only; my $url = $r->uri; - my ($is_ext,$brcrum); + my ($is_ext,$brcrum,$absolute); for ($url){ s|^/adm/wrapper||; @@ -113,6 +116,15 @@ sub handler { } if ($is_ext) { + my $hostname = $r->hostname(); + my $lonhost = &Apache::lonnet::host_from_dns($hostname); + if ($lonhost) { + my $actual = &Apache::lonnet::absolute_url($hostname); + my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname; + unless ($actual eq $expected) { + $absolute = $expected; + } + } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['forceedit','register','folderpath','symb','idx','title']); if (($env{'form.forceedit'}) && @@ -160,7 +172,7 @@ sub handler { # encrypt url if not external &Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ; - $r->print( wrapper($url,$brcrum) ); + $r->print( wrapper($url,$brcrum,$absolute) ); } # not just the menu