--- rat/lonpage.pm 2002/05/20 19:05:11 1.37 +++ rat/lonpage.pm 2002/08/12 18:21:42 1.44 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.37 2002/05/20 19:05:11 sakharuk Exp $ +# $Id: lonpage.pm,v 1.44 2002/08/12 18:21:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -48,6 +48,7 @@ use Apache::loncommon(); use Apache::lonxml(); use HTML::TokeParser; use GDBM_File; +use Apache::lonsequence; # -------------------------------------------------------------- Module Globals my %hash; @@ -146,19 +147,22 @@ sub handler { if ($ENV{'browser.mathml'}) { $r->content_type('text/xml'); } else { - $r->content_type('text/html'); + $r->content_type('text/html'); } $r->send_http_header; return OK; } - + + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['forceselect','launch']); + my $number_of_columns = 1; my $requrl=$r->uri; my $target = $ENV{'form.grade_target'}; # ----------------------------------------------------------------- Tie db file - if ($ENV{'request.course.fn'}) { + if (($ENV{'request.course.fn'}) && (!$ENV{'form.forceselect'})) { my $fn=$ENV{'request.course.fn'}; 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 my $firstres=$hash{'map_start_'.$requrl}; my $lastres=$hash{'map_finish_'.$requrl}; @@ -362,8 +366,21 @@ sub handler { if ($nforms) { $r->print('
'); - } + } + } else { + $r->print('\documentclass[letterpaper]{article} + \newcommand{\keephidden}[1]{} + \usepackage[dvips]{graphicx} + \usepackage{epsfig} + \usepackage{calc} + \usepackage{longtable} + \begin{document}'); + } # ----------------------------------------------------------------- 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(''); } for ($i=0;$i<=$#rows;$i++) { @@ -397,7 +414,7 @@ sub handler { ''. ''. ''. + '&command=gradingmenu" target="LONcatInfo">'. ''. ''. 'print(''); + } else { + for (my $incol=1;$incol<=$avespan;$incol++) { + $r->print(' & '); + } } } unless ($target eq 'tex') { $r->print(''); + } else { + $r->print('REMOVETHEHEADOFLONGTABLE\\\\'); } } } unless ($target eq 'tex') { $r->print("\n
"); + } else { + $r->print('\end{longtable}'); } # ---------------------------------------------------------------- Submit, etc. if ($nforms) { @@ -460,14 +494,18 @@ sub handler { ''); } - $r->print(''.&Apache::lonxml::xmlend()); + unless ($target eq 'tex') { + $r->print(''.&Apache::lonxml::xmlend()); + } else { + $r->print('\end{document}'.$number_of_columns); + } # -------------------------------------------------------------------- End page } # ------------------------------------------------------------- End render page } else { $r->content_type('text/html'); $r->send_http_header; - $r->print('Page undefined.'); + &Apache::lonsequence::viewmap($r,$requrl); } # ------------------------------------------------------------------ Untie hash unless (untie(%hash)) { @@ -480,8 +518,10 @@ sub handler { } } } - $ENV{'user.error.msg'}="$requrl:bre:0:0:Course not initialized"; - return HTTP_NOT_ACCEPTABLE; + $r->content_type('text/html'); + $r->send_http_header; + &Apache::lonsequence::viewmap($r,$requrl); + return OK; } 1;