version 1.43, 2012/11/29 20:13:49
|
version 1.45, 2013/10/15 10:17:19
|
Line 40 use Apache::lonextresedit();
|
Line 40 use Apache::lonextresedit();
|
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
sub wrapper { |
sub wrapper { |
my ($url,$brcrum) = @_; |
my ($url,$brcrum,$absolute,$is_ext) = @_; |
|
|
my $forcereg; |
my $forcereg; |
unless ($env{'form.folderpath'}) { |
unless ($env{'form.folderpath'}) { |
Line 52 sub wrapper {
|
Line 52 sub wrapper {
|
$args->{'force_register'} = $forcereg; |
$args->{'force_register'} = $forcereg; |
} |
} |
if (ref($brcrum) eq 'ARRAY') { |
if (ref($brcrum) eq 'ARRAY') { |
$args->{'bread_crumbs'} = $brcrum; |
$args->{'bread_crumbs'} = $brcrum; |
|
} |
|
if ($absolute) { |
|
$args->{'use_absolute'} = $absolute; |
} |
} |
|
|
my $startpage = Apache::loncommon::start_page('Menu',undef,$args); |
my $startpage = Apache::loncommon::start_page('Menu',undef,$args); |
Line 103 sub handler {
|
Line 106 sub handler {
|
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my $url = $r->uri; |
my $url = $r->uri; |
my ($is_ext,$brcrum); |
my ($is_ext,$brcrum,$absolute); |
|
|
for ($url){ |
for ($url){ |
s|^/adm/wrapper||; |
s|^/adm/wrapper||; |
Line 113 sub handler {
|
Line 116 sub handler {
|
} |
} |
|
|
if ($is_ext) { |
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'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['forceedit','register','folderpath','symb','idx','title']); |
['forceedit','register','folderpath','symb','idx','title']); |
if (($env{'form.forceedit'}) && |
if (($env{'form.forceedit'}) && |
Line 160 sub handler {
|
Line 172 sub handler {
|
# encrypt url if not external |
# encrypt url if not external |
&Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ; |
&Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ; |
|
|
$r->print( wrapper($url,$brcrum) ); |
$r->print( wrapper($url,$brcrum,$absolute,$is_ext) ); |
|
|
} # not just the menu |
} # not just the menu |
|
|
Line 187 described at http://www.lon-capa.org.
|
Line 199 described at http://www.lon-capa.org.
|
|
|
=over |
=over |
|
|
=item wrapper($url,$brcrum) |
=item wrapper($url,$brcrum,$absolute,$is_ext) |
|
|
|
=over |
|
|
|
=item $url |
|
|
|
url to display by including in an iframe within a |
|
LON-CAPA page which has a standard LON-CAPA inline menu. |
|
|
Wraps $url in an iframe and generates a page for it. |
=item $brcrum |
$brcrum contains breadcrumbs for unregistered urls |
|
|
breadcrumbs for unregistered urls |
(i.e., external resources in Supplemental Content). |
(i.e., external resources in Supplemental Content). |
|
|
|
=item $absolute |
|
|
|
contains protocol (http or https) followed by |
|
the hostname, if menu items in the standard LON-CAPA |
|
interface created by the call to loncommon::start_page() |
|
within &wrapper() need to use absolute URLs rather than |
|
relative URLs. |
|
|
|
That will be the case where an external resource has been |
|
served from port 80, when the server customarily serves |
|
requests using Apache/SSL (i.e., port 443). mod_rewrite |
|
is used to switch requests for external resources |
|
from https:// to http:// where the the URL of the remote site |
|
specified in the resource itself is http://. |
|
|
|
This is done to avoid default mixed content blocking |
|
in Firefox 23 and later, when serving from Apache/SSL. |
|
|
|
=item $is_ext |
|
|
|
true if URL is for an external resource. |
|
|
|
=back |
|
|
Returns markup for the entire page. |
Returns markup for the entire page. |
|
|
=item handler() |
=item handler() |