Diff for /rat/lonpage.pm between versions 1.39 and 1.52

version 1.39, 2002/05/27 12:04:36 version 1.52, 2003/07/19 13:11:41
Line 33 Line 33
 # 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16,  # 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16,
 # YEAR=2001  # YEAR=2001
 # 08/13/01,08/30,10/1 Gerd Kortemeyer  # 08/13/01,08/30,10/1 Gerd Kortemeyer
 # 12/16 Scott Harrison  
 # YEAR=2002  # YEAR=2002
 # 03/19 Gerd Kortemeyer  # 03/19 Gerd Kortemeyer
 #  #
Line 46  use Apache::Constants qw(:common :http); Line 45  use Apache::Constants qw(:common :http);
 use Apache::lonnet();  use Apache::lonnet();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonxml();  use Apache::lonxml();
   use Apache::lonmenu;
 use HTML::TokeParser;  use HTML::TokeParser;
 use GDBM_File;  use GDBM_File;
 use Apache::lonsequence;  use Apache::lonsequence;
Line 147  sub handler { Line 147  sub handler {
        if ($ENV{'browser.mathml'}) {         if ($ENV{'browser.mathml'}) {
            $r->content_type('text/xml');             $r->content_type('text/xml');
        } else {         } else {
            $r->content_type('text/html');             $r->content_type('text/html'); 
        }         }
        $r->send_http_header;         $r->send_http_header;
        return OK;         return OK;
    }     }
      
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                           ['forceselect','launch']);                                            ['forceselect','launch']);
     my $number_of_columns = 1;
   my $requrl=$r->uri;      my $requrl=$r->uri;  
   my $target = $ENV{'form.grade_target'};    my $target = $ENV{'form.grade_target'};
 # ----------------------------------------------------------------- Tie db file  # ----------------------------------------------------------------- Tie db file
   if (($ENV{'request.course.fn'}) && (!$ENV{'form.forceselect'})) {    if (($ENV{'request.course.fn'}) && (!$ENV{'form.forceselect'})) {
       my $fn=$ENV{'request.course.fn'};        my $fn=$ENV{'request.course.fn'};
       if (-e "$fn.db") {        if (-e "$fn.db") {
           if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER,0640)) {            if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) {
 # ------------------------------------------------------------------- Hash tied  # ------------------------------------------------------------------- Hash tied
               my $firstres=$hash{'map_start_'.$requrl};                my $firstres=$hash{'map_start_'.$requrl};
               my $lastres=$hash{'map_finish_'.$requrl};                my $lastres=$hash{'map_finish_'.$requrl};
Line 171  sub handler { Line 171  sub handler {
   
                   @rows=();                    @rows=();
   
                   &tracetable(0,$firstres,'&'.$lastres.'&');                    &tracetable(0,$firstres,'&');
                   if ($hash{'src_'.$lastres}) {  
                      my $brepriv=  
                         &Apache::lonnet::allowed('bre',$hash{'src_'.$lastres});  
                      if (($brepriv eq '2') || ($brepriv eq 'F')) {  
                         $rows[$#rows+1]=''.$lastres;  
      }  
   }  
   
 # ------------------------------------------------------------ Add to symb list  # ------------------------------------------------------------ Add to symb list
   
Line 246  sub handler { Line 239  sub handler {
                                }                                 }
       }        }
                               my $output=Apache::lonnet::ssi($src,%posthash);                                my $output=Apache::lonnet::ssi($src,%posthash);
         $output=~
       s/\/\/ BEGIN LON\-CAPA Internal.+\/\/ END LON\-CAPA Internal\s//gs;
                                 if ($target eq 'tex') {
     $output =~ s/^([^&]+)\\begin{document}//;
     $output =~ s/\\end{document}//;
     $output = '\parbox{\minipagewidth}{ '.$output.' }';
                                     #some additional cleanup necessary for LateX (due to limitations of table environment 
     $output =~ s/(\\vskip\s*\d+mm)\s*(\\\\)+/$1/g;
         }
                               my $parser=HTML::TokeParser->new(\$output);                                my $parser=HTML::TokeParser->new(\$output);
                               my $token;                                my $token;
                               my $thisdir=$src;                                my $thisdir=$src;
Line 348  sub handler { Line 350  sub handler {
   }    }
 # ------------------------------------------------------------------------ Head  # ------------------------------------------------------------------------ Head
   $r->print("\n<head>\n".$allmeta);    $r->print("\n<head>\n".$allmeta);
   $allscript=~  
       s/\/\/ BEGIN LON\-CAPA Internal.+\/\/ END LON\-CAPA Internal\s//gs;  
   if ($allscript) {    if ($allscript) {
       $r->print("\n<script language='JavaScript'>\n".        $r->print("\n<script language='JavaScript'>\n".
  $allscript."\n</script>\n");   $allscript."\n</script>\n");
   }    }
   $r->print(&Apache::lonxml::registerurl(1,undef));    $r->print(&Apache::lonmenu::registerurl(1,undef));
   $r->print("\n</head>\n");    $r->print("\n</head>\n");
 # ------------------------------------------------------------------ Start body  # ------------------------------------------------------------------ Start body
   if ($isxml) {    if ($isxml) {
       $r->print($xmlbody);        $r->print($xmlbody);
   } else {    } else {
       $r->print('<body bgcolor="#FFFFFF" onLoad="'.&Apache::lonxml::loadevents.'" onUnload="'.&Apache::lonxml::unloadevents.'">');        $r->print(
                  '<body bgcolor="#FFFFFF" onLoad="'.&Apache::lonmenu::loadevents.
                  '" onUnload="'.&Apache::lonmenu::unloadevents.'">'.
                                 &Apache::lonmenu::menubuttons(undef,$target,1)
    );
   }    }
 # ------------------------------------------------------------------ Start form  # ------------------------------------------------------------------ Start form
   if ($nforms) {    if ($nforms) {
       $r->print('<form method="post" action="'.        $r->print('<form method="post" action="'.
  $requrl.'">');   $requrl.'">');
   }          }
         } else {
     $r->print('\documentclass{article}
                                    \newcommand{\keephidden}[1]{}           
                                    \usepackage[dvips]{graphicx}
                                    \usepackage{epsfig}
                                    \usepackage{calc}
                                    \usepackage{longtable}
                                    \begin{document}');
         }
 # ----------------------------------------------------------------- Start table  # ----------------------------------------------------------------- Start table
         if ($target eq 'tex') {
     $r->print('\begin{longtable}INSERTTHEHEADOFLONGTABLE\endfirsthead\endhead ');
     if ($number_of_columns le $lcm) {$number_of_columns=$lcm;};
         } else {
   $r->print('<table cols="'.$lcm.'" border="0">');    $r->print('<table cols="'.$lcm.'" border="0">');
       }        }
                       for ($i=0;$i<=$#rows;$i++) {                        for ($i=0;$i<=$#rows;$i++) {
Line 397  sub handler { Line 414  sub handler {
  &Apache::lonnet::declutter($hash{'src_'.$rid});   &Apache::lonnet::declutter($hash{'src_'.$rid});
                                  $metainfo.=                                   $metainfo.=
                   '<a href="/adm/grades?symb='.&Apache::lonnet::escape($symb).                    '<a href="/adm/grades?symb='.&Apache::lonnet::escape($symb).
                   '&command=submission" target="LONcatInfo">'.  #                 '&command=submission" target="LONcatInfo">'.
                     '&command=submission">'.
                           '<img src="/adm/lonMisc/subm_button.gif" border=0>'.                            '<img src="/adm/lonMisc/subm_button.gif" border=0>'.
   '</img></a>'.    '</img></a>'.
                   '<a href="/adm/grades?symb='.&Apache::lonnet::escape($symb).                    '<a href="/adm/grades?symb='.&Apache::lonnet::escape($symb).
                   '&command=gradingmenu" target="LONcatInfo">'.  #                  '&command=gradingmenu" target="LONcatInfo">'.
                     '&command=gradingmenu">'.
                           '<img src="/adm/lonMisc/pgrd_button.gif" border=0>'.                            '<img src="/adm/lonMisc/pgrd_button.gif" border=0>'.
   '</img></a>'.    '</img></a>'.
                   '<a href="/adm/parmset?symb='.&Apache::lonnet::escape($symb).                    '<a href="/adm/parmset?symb='.&Apache::lonnet::escape($symb).
                           '" target="LONcatInfo">'.  #                          '" target="LONcatInfo">'.
                             '" >'.
                           '<img src="/adm/lonMisc/pprm_button.gif" border=0>'.                            '<img src="/adm/lonMisc/pprm_button.gif" border=0>'.
       '</img></a>';        '</img></a>';
                               }                                }
Line 438  sub handler { Line 458  sub handler {
                                   $r->print($ssibody{$rid});                                    $r->print($ssibody{$rid});
   unless ($target eq 'tex') {    unless ($target eq 'tex') {
       $r->print('</font>');        $r->print('</font>');
                                     }
                                     if ($ENV{'course.'.
                                         $ENV{'request.course.id'}.
                                         '.pageseparators'} eq 'yes') {
                                         unless($target eq 'tex') {
                                             $r->print('<hr />');
                                         } else {
                                             $r->print('\hline');
                                         }
   }    }
       } elsif ($cellemb{$rid} eq 'img') {        } elsif ($cellemb{$rid} eq 'img') {
                                   $r->print('>'.$metainfo.'<img src="'.                                    $r->print('>'.$metainfo.'<img src="'.
Line 448  sub handler { Line 477  sub handler {
                               }                                }
       unless ($target eq 'tex') {        unless ($target eq 'tex') {
   $r->print('</td>');    $r->print('</td>');
         } else {
                                     for (my $incol=1;$incol<=$avespan;$incol++) {
         $r->print(' & ');
     }
       }        }
                           }                            }
       unless ($target eq 'tex') {        unless ($target eq 'tex') {
   $r->print('</tr>');    $r->print('</tr>');
         } else {
     $r->print('REMOVETHEHEADOFLONGTABLE\\\\');
       }        }
         }          }
                       }                        }
       unless ($target eq 'tex') {        unless ($target eq 'tex') {
   $r->print("\n</table>");    $r->print("\n</table>");
         } else {
     $r->print('\end{longtable}\strut');
       }        }
 # ---------------------------------------------------------------- Submit, etc.  # ---------------------------------------------------------------- Submit, etc.
                       if ($nforms) {                        if ($nforms) {
Line 464  sub handler { Line 501  sub handler {
                   '<input name="all_submit" value="Submit All" type="'.                    '<input name="all_submit" value="Submit All" type="'.
   (($nforms>1)?'submit':'hidden').'"></input></form>');    (($nforms>1)?'submit':'hidden').'"></input></form>');
                       }                        }
                       $r->print('</body>'.&Apache::lonxml::xmlend());        unless ($target eq 'tex') {
     $r->print('</body>'.&Apache::lonxml::xmlend());
         } else {
     $r->print('\end{document}'.$number_of_columns);
         }
 # -------------------------------------------------------------------- End page  # -------------------------------------------------------------------- End page
                   }                                      }                  
 # ------------------------------------------------------------- End render page  # ------------------------------------------------------------- End render page

Removed from v.1.39  
changed lines
  Added in v.1.52


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