--- rat/lonpage.pm 2002/05/21 02:26:16 1.38 +++ rat/lonpage.pm 2002/09/16 14:23:02 1.46 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.38 2002/05/21 02:26:16 albertel Exp $ +# $Id: lonpage.pm,v 1.46 2002/09/16 14:23:02 sakharuk 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}; @@ -167,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 @@ -242,6 +239,13 @@ sub handler { } } my $output=Apache::lonnet::ssi($src,%posthash); + 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; @@ -362,8 +366,21 @@ sub handler { if ($nforms) { $r->print('
Page undefined.