--- rat/lonwrapper.pm 2013/09/07 19:58:08 1.44 +++ rat/lonwrapper.pm 2013/10/15 10:17:19 1.45 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Wrapper for external and binary files as standalone resources # -# $Id: lonwrapper.pm,v 1.44 2013/09/07 19:58:08 raeburn Exp $ +# $Id: lonwrapper.pm,v 1.45 2013/10/15 10:17:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,7 +40,7 @@ use Apache::lonextresedit(); # ================================================================ Main Handler sub wrapper { - my ($url,$brcrum,$absolute) = @_; + my ($url,$brcrum,$absolute,$is_ext) = @_; my $forcereg; unless ($env{'form.folderpath'}) { @@ -52,7 +52,7 @@ sub wrapper { $args->{'force_register'} = $forcereg; } if (ref($brcrum) eq 'ARRAY') { - $args->{'bread_crumbs'} = $brcrum; + $args->{'bread_crumbs'} = $brcrum; } if ($absolute) { $args->{'use_absolute'} = $absolute; @@ -172,7 +172,7 @@ sub handler { # encrypt url if not external &Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ; - $r->print( wrapper($url,$brcrum,$absolute) ); + $r->print( wrapper($url,$brcrum,$absolute,$is_ext) ); } # not just the menu @@ -199,11 +199,44 @@ described at http://www.lon-capa.org. =over -=item wrapper($url,$brcrum) +=item wrapper($url,$brcrum,$absolute,$is_ext) -Wraps $url in an iframe and generates a page for it. -$brcrum contains breadcrumbs for unregistered urls +=over + +=item $url + +url to display by including in an iframe within a +LON-CAPA page which has a standard LON-CAPA inline menu. + +=item $brcrum + +breadcrumbs for unregistered urls (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. =item handler()