Diff for /rat/lonwrapper.pm between versions 1.41 and 1.44

version 1.41, 2011/11/07 20:06:29 version 1.44, 2013/09/07 19:58:08
Line 33  use strict; Line 33  use strict;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::lonenc();  use Apache::lonenc();
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::lonlocal;
   use Apache::loncommon();
   use Apache::lonhtmlcommon();
   use Apache::lonextresedit();
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub wrapper {  sub wrapper {
     my $url = shift;      my ($url,$brcrum,$absolute) = @_;
   
     my $startpage =  Apache::loncommon::start_page('Menu',undef,      my $forcereg;
   { 'force_register' =>1, 'bgcolor'   => '#FFFFFF',}) ;      unless ($env{'form.folderpath'}) {
           $forcereg = 1;
       }
   
       my $args = {'bgcolor' => '#FFFFFF'};
       if ($forcereg) {
           $args->{'force_register'} = $forcereg;
       }
       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();      my $endpage =  Apache::loncommon::end_page();
   
     my $script = Apache::lonhtmlcommon::scripttag(<<SCRIPT );      my $script = Apache::lonhtmlcommon::scripttag(<<SCRIPT );
     \$(document).ready( function() {      \$(document).ready( function() {
         \$(window).unbind('resize').resize(function(){          \$(window).unbind('resize').resize(function(){
             var header = \$('.LC_head_subbox')[0] ?  \$('.LC_head_subbox')               var header;
                                                   :  \$('#LC_breadcrumbs');              var offset = 5;
             var pos = header.height() + header.position().top + 5;              var height = 0;
               var hdrtop = 0;
               if (\$('div.LC_head_subbox:first').length) {
                   header = \$('div.LC_head_subbox:first');
                   offset = 9;
               } else {
                   if (\$('#LC_breadcrumbs').length) {
                       header = \$('#LC_breadcrumbs');
                   }
               }
               if (header.length) {
                   height = header.height();
                   hdrtop = header.position().top;
               }
               var pos = height + hdrtop + offset;
             \$('.LC_iframecontainer').css('top', pos);              \$('.LC_iframecontainer').css('top', pos);
         });          });
     });      });
Line 73  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;      my ($is_ext,$brcrum,$absolute);
   
     for ($url){      for ($url){
         s|^/adm/wrapper||;          s|^/adm/wrapper||;
Line 82  sub handler { Line 115  sub handler {
         s|&colon;|:|g;                        s|&colon;|:|g;              
     }      }
   
       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'}) &&
               (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) &&
               (($env{'form.folderpath'} =~ /^supplemental/) ||
                ($env{'form.symb'} =~ /^uploaded/))) {
               $r->print(
                   &Apache::lonextresedit::display_editor($url,$env{'form.folderpath'},
                                                          $env{'form.symb'},
                                                          $env{'form.idx'}));
               return OK;
           } elsif ($env{'form.folderpath'} =~ /^supplemental/) {
               my $crstype = &Apache::loncommon::course_type();
               my $title = $env{'form.title'};
               if ($title eq '') {
                   $title = &mt('External Resource');
               }
               $brcrum =
                   &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
           }
       }
   
 #  #
 # Actual URL  # Actual URL
 #  #
Line 97  sub handler { Line 162  sub handler {
 #  #
         if ($is_ext) {          if ($is_ext) {
             $ENV{'QUERY_STRING'} =~ s/(^|\&)symb=[^\&]*/$1/;              $ENV{'QUERY_STRING'} =~ s/(^|\&)symb=[^\&]*/$1/;
             $ENV{'QUERY_STRING'} =~ s/\&$//;                $ENV{'QUERY_STRING'} =~ s/\&$//;
         }          }
   
         unless ($ENV{'QUERY_STRING'} eq '') {          unless ($ENV{'QUERY_STRING'} eq '') {
Line 107  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) );          $r->print( wrapper($url,$brcrum,$absolute) );
   
     } # not just the menu      } # not just the menu
           
Line 134  described at http://www.lon-capa.org. Line 199  described at http://www.lon-capa.org.
   
 =over  =over
   
 =item wrapper($url)  =item wrapper($url,$brcrum)
   
 Wraps $url in an iframe and generates a page for it.  Wraps $url in an iframe and generates a page for it.
   $brcrum contains breadcrumbs for unregistered urls
   (i.e., external resources in Supplemental Content).
 Returns markup for the entire page.  Returns markup for the entire page.
   
 =item handler()  =item handler()

Removed from v.1.41  
changed lines
  Added in v.1.44


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.