--- rat/lonpage.pm 2002/06/20 17:47:35 1.40 +++ rat/lonpage.pm 2003/04/18 01:20:25 1.50 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.40 2002/06/20 17:47:35 sakharuk Exp $ +# $Id: lonpage.pm,v 1.50 2003/04/18 01:20:25 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,7 +33,6 @@ # 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16, # YEAR=2001 # 08/13/01,08/30,10/1 Gerd Kortemeyer -# 12/16 Scott Harrison # YEAR=2002 # 03/19 Gerd Kortemeyer # @@ -46,6 +45,7 @@ use Apache::Constants qw(:common :http); use Apache::lonnet(); use Apache::loncommon(); use Apache::lonxml(); +use Apache::lonmenu; use HTML::TokeParser; use GDBM_File; use Apache::lonsequence; @@ -152,17 +152,17 @@ sub handler { $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'}) && (!$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}; @@ -171,14 +171,7 @@ sub handler { @rows=(); - &tracetable(0,$firstres,'&'.$lastres.'&'); - if ($hash{'src_'.$lastres}) { - my $brepriv= - &Apache::lonnet::allowed('bre',$hash{'src_'.$lastres}); - if (($brepriv eq '2') || ($brepriv eq 'F')) { - $rows[$#rows+1]=''.$lastres; - } - } + &tracetable(0,$firstres,'&'); # ------------------------------------------------------------ Add to symb list @@ -196,7 +189,6 @@ sub handler { # ------------------------------------------------------------------ Page parms - my $number_of_columns = 1; my $j; my $lcm=1; my $contents=0; @@ -247,6 +239,15 @@ sub handler { } } 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 $token; my $thisdir=$src; @@ -349,19 +350,17 @@ sub handler { } # ------------------------------------------------------------------------ Head $r->print("\n\n".$allmeta); - $allscript=~ - s/\/\/ BEGIN LON\-CAPA Internal.+\/\/ END LON\-CAPA Internal\s//gs; if ($allscript) { $r->print("\n\n"); } - $r->print(&Apache::lonxml::registerurl(1,undef)); + $r->print(&Apache::lonmenu::registerurl(1,undef)); $r->print("\n\n"); # ------------------------------------------------------------------ Start body if ($isxml) { $r->print($xmlbody); } else { - $r->print(''); + $r->print(''); } # ------------------------------------------------------------------ Start form if ($nforms) { @@ -369,16 +368,18 @@ sub handler { $requrl.'">'); } } else { - $r->print('\documentclass[letterpaper]{article} + $r->print('\documentclass{article} \newcommand{\keephidden}[1]{} \usepackage[dvips]{graphicx} \usepackage{epsfig} \usepackage{calc} + \usepackage{longtable} \begin{document}'); } # ----------------------------------------------------------------- Start table if ($target eq 'tex') { - $r->print('\begin{tabular}INSERT'); + $r->print('\begin{longtable}INSERTTHEHEADOFLONGTABLE\endfirsthead\endhead '); + if ($number_of_columns le $lcm) {$number_of_columns=$lcm;}; } else { $r->print(''); } @@ -450,6 +451,15 @@ sub handler { $r->print($ssibody{$rid}); unless ($target eq 'tex') { $r->print(''); + } + if ($ENV{'course.'. + $ENV{'request.course.id'}. + '.pageseparators'} eq 'yes') { + unless($target eq 'tex') { + $r->print('
'); + } else { + $r->print('\hline'); + } } } elsif ($cellemb{$rid} eq 'img') { $r->print('>'.$metainfo.'"); } else { - $r->print('\end{tabular}'); + $r->print('\end{longtable}\strut'); } # ---------------------------------------------------------------- Submit, etc. if ($nforms) {