--- rat/lonpage.pm 2001/12/17 00:57:59 1.30 +++ rat/lonpage.pm 2002/05/27 12:04:36 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.30 2001/12/17 00:57:59 harris41 Exp $ +# $Id: lonpage.pm,v 1.39 2002/05/27 12:04:36 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,8 @@ # YEAR=2001 # 08/13/01,08/30,10/1 Gerd Kortemeyer # 12/16 Scott Harrison +# YEAR=2002 +# 03/19 Gerd Kortemeyer # ### @@ -46,6 +48,7 @@ use Apache::loncommon(); use Apache::lonxml(); use HTML::TokeParser; use GDBM_File; +use Apache::lonsequence; # -------------------------------------------------------------- Module Globals my %hash; @@ -149,10 +152,14 @@ sub handler { $r->send_http_header; return OK; } + + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['forceselect','launch']); - my $requrl=$r->uri; + 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)) { @@ -304,7 +311,10 @@ sub handler { $thisdir=~s/\/[^\/]*$//; foreach (@rlinks) { unless (($_=~/^http:\/\//i) || - ($_=~/^\//)) { + ($_=~/^\//) || + ($_=~/^javascript:/i) || + ($_=~/^mailto:/i) || + ($_=~/^\#/)) { my $newlocation= &Apache::lonnet::hreflocation($thisdir,$_); $output=~s/(\"|\'|\=\s*)$_(\"|\'|\s|\>)/$1$newlocation$2/; @@ -326,43 +336,45 @@ sub handler { # ------------------------------------------------------------------ Build page # ---------------------------------------------------------------- Send headers - if ($isxml) { - $r->content_type('text/xml'); - $r->send_http_header; - $r->print($xmlheader); - } else { - $r->content_type('text/html'); - $r->send_http_header; - $r->print(''); - } + unless ($target eq 'tex') { + if ($isxml) { + $r->content_type('text/xml'); + $r->send_http_header; + $r->print($xmlheader); + } else { + $r->content_type('text/html'); + $r->send_http_header; + $r->print(''); + } # ------------------------------------------------------------------------ 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)); - $r->print("\n\n"); + $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("\n\n"); # ------------------------------------------------------------------ Start body - if ($isxml) { - $r->print($xmlbody); - } else { - $r->print( - ''); - } + if ($isxml) { + $r->print($xmlbody); + } else { + $r->print(''); + } # ------------------------------------------------------------------ Start form - if ($nforms) { - $r->print('