Diff for /rat/lonwrapper.pm between versions 1.20 and 1.21

version 1.20, 2006/03/19 23:06:00 version 1.21, 2006/03/21 21:50:39
Line 36  use Apache::lonmenu; Line 36  use Apache::lonmenu;
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub simple_menu {
   my $r=shift;  
   &Apache::loncommon::content_type($r,'text/html');  
   $r->send_http_header;  
   
   return OK if $r->header_only;  
   
   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},  
                                           ['wrapperdisplay']);  
   my $orgurl=$r->uri;  
   my $url=$orgurl;  
   $orgurl.=(($orgurl=~/\?/)?'&':'?').$ENV{'QUERY_STRING'};  
   $orgurl.=(($orgurl=~/\?/)?'&':'?').'wrapperdisplay=menu';  
   $url=~s/^\/adm\/wrapper//;  
   my $is_ext = $url =~ m|^/ext/|;  
   $url=~s/^\/ext\//http\:\/\//;  
   $url=~s|:|:|g;  
   if ($env{'form.wrapperdisplay'} eq 'menu') {  
 #  #
 # Producing the menu buttons  # Producing the menu buttons
 #  #
       $r->print('<html><body bgcolor="#FFFFFF">'.      return '<html><body bgcolor="#FFFFFF">'.
                 &Apache::lonmenu::menubuttons(1,'web',1).'</body></html>');   &Apache::lonmenu::menubuttons(1,'web',1).'</body></html>';
   } else {  
 #  
 # Actual URL  
 #  
       if ($url=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {  
 #  
 # This is uploaded homework  
 #  
           $env{'request.state'}='uploaded';  
           &Apache::lonhomework::renderpage($r,$url);  
       } else {  
 #  
 # This is not homework  
 #  
   if ($is_ext) {  
       $ENV{'QUERY_STRING'}=~s/(^|\&)symb=[^\&]*/$1/;  
   }  
   $url.=(($url=~/\?/)?'&':'?').$ENV{'QUERY_STRING'};   
                                                  # reappend the query arguments  
   my $events='onLoad="'.&Apache::lonmenu::loadevents.  
       '" onUnload="'.&Apache::lonmenu::unloadevents.'"';  
   my $script=&Apache::lonmenu::registerurl(1,undef);  
   
   if ($env{'browser.interface'} eq 'textual') {  }
   
   
   sub wrapper {
       my ($topurl,$bottomurl) = @_;
   
       if ($env{'browser.interface'} eq 'textual') {
 #  #
 # ssi-based rendering for text-based interface  # ssi-based rendering for text-based interface
 #  #
       $r->print('<html><head>'.   return '<html><head>'.
  &Apache::lonmenu::registerurl(1).      &Apache::lonmenu::registerurl(1).
  '</head><body bgcolor="#FFFFFF">'.      '</head><body bgcolor="#FFFFFF">'.
  &Apache::lonmenu::menubuttons(1).      &Apache::lonmenu::menubuttons(1).
  &Apache::lonnet::ssi_body($url).'</body></html>');      &Apache::lonnet::ssi_body($bottomurl).'</body></html>';
   } elsif ($env{'environment.remote'} eq 'off') {      }
 #  
 # This is inline remote      my $events='onLoad="'.&Apache::lonmenu::loadevents.
 #    '" onUnload="'.&Apache::lonmenu::unloadevents.'"';
       $r->print(<<ENDDOCUMENTINL);      my $script=&Apache::lonmenu::registerurl(1,undef);
       
       my $result = <<ENDDOCUMENTINL;
 <html>  <html>
 <head>  <head>
 $script  $script
 </head>  </head>
   ENDDOCUMENTINL
   
       if ($env{'environment.remote'} eq 'off') {
   #
   # This is inline remote
   # 
    $result .= <<ENDDOCUMENTINL;
 <frameset rows="180,*" border="0" $events>  <frameset rows="180,*" border="0" $events>
 <frame src="$orgurl">  <frame src="$topurl">
 <frame src="$url">  <frame src="$bottomurl">
 </frameset>  </frameset>
 </html>  
 ENDDOCUMENTINL  ENDDOCUMENTINL
           } else {      } else {
 #  #
 # frame-based rendering for graphical interface  # frame-based rendering for graphical interface
 #  #
   $r->print(<<ENDDOCUMENT);   $result .=<<ENDDOCUMENT;
 <html>  
 <head>  
 $script  
 </head>  
 <frameset rows="1,*" border="0" $events>  <frameset rows="1,*" border="0" $events>
 <frame src="/adm/rat/empty.html">  <frame src="/adm/rat/empty.html">
 <frame src="$url">  <frame src="$bottomurl">
 </frameset>  </frameset>
 </html>  
 ENDDOCUMENT  ENDDOCUMENT
           }      }
       } # not homework  
   } # not just the menu      $result .= "\n</html>\n";
   return OK;  }
   
   sub handler {
       my $r=shift;
       &Apache::loncommon::content_type($r,'text/html');
       $r->send_http_header;
   
       return OK if $r->header_only;
   
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
       ['wrapperdisplay']);
       if ($env{'form.wrapperdisplay'} eq 'menu') {
    $r->print(&simple_menu());
    return OK;
       }
   
       my $orgurl=$r->uri;
       my $url=$orgurl;
       $orgurl.=(($orgurl=~/\?/)?'&':'?').$ENV{'QUERY_STRING'};
       $orgurl.=(($orgurl=~/\?/)?'&':'?').'wrapperdisplay=menu';
       $url=~s/^\/adm\/wrapper//;
       my $is_ext = $url =~ m|^/ext/|;
       $url=~s/^\/ext\//http\:\/\//;
       $url=~s|&colon;|:|g;
   #
   # Actual URL
   #
       if ($url=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
   #
   # This is uploaded homework
   #
    $env{'request.state'}='uploaded';
    &Apache::lonhomework::renderpage($r,$url);
       } else {
   #
   # This is not homework
   #
    if ($is_ext) {
       $ENV{'QUERY_STRING'}=~s/(^|\&)symb=[^\&]*/$1/;
    }
    $url.=(($url=~/\?/)?'&':'?').$ENV{'QUERY_STRING'}; 
    # reappend the query arguments
    $r->print(&wrapper($orgurl,$url));
       } # not just the menu
       return OK;
 } # handler  } # handler
   
 1;  1;

Removed from v.1.20  
changed lines
  Added in v.1.21


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>