--- loncom/homework/structuretags.pm 2003/07/25 10:44:36 1.199 +++ loncom/homework/structuretags.pm 2003/08/13 18:19:59 1.204 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.199 2003/07/25 10:44:36 www Exp $ +# $Id: structuretags.pm,v 1.204 2003/08/13 18:19:59 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,9 +44,9 @@ BEGIN { sub start_web { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - if (!($target eq 'web' || $target eq 'edit' || $target eq 'modified' || - $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) { - my $bodytext=&Apache::lonxml::get_all_text("/web",$parser); + my $bodytext=&Apache::lonxml::get_all_text("/web",$parser); + if ($target eq 'web') { + return $bodytext; } return ''; } @@ -58,12 +58,9 @@ sub end_web { sub start_tex { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result=''; - if (!($target eq 'edit' || $target eq 'modified' || - $target eq 'answer' || $target eq 'grade' || $target eq 'meta' )) { - &Apache::lonxml::debug("tex 1"); - my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser); - } elsif ($target eq 'tex') { - $result=&Apache::lonxml::get_all_text("/tex",$parser); + my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser); + if ($target eq 'tex') { + return $bodytext.' '; } return $result;; } @@ -133,11 +130,18 @@ sub page_start { #use Time::HiRes(); sub get_resource_name { my ($parstack,$safeeval)=@_; + if (defined($Apache::lonhomework::name)) { + return $Apache::lonhomework::name; + } my $name=&Apache::lonnet::gettitle(); if ($name eq '') { $name=&Apache::lonnet::EXT('resource.title'); if ($name eq 'con_lost') { $name = ''; } } + if ($name!~/\S+/) { + $name=$ENV{'request.uri'}; + $name=~s-/([^/]+)$-$1-; + } $Apache::lonhomework::name=$name; return $name; } @@ -271,6 +275,41 @@ credit even if done erroneously.
ENDCHECKOUT } +sub init_problem_globals { + my ($type)=@_; + #initialize globals + if ($type eq 'problem') { + $Apache::inputtags::part='0'; + @Apache::inputtags::partlist=('0'); + $Apache::lonhomework::problemstatus= + &Apache::lonnet::EXT('resource.0.problemstatus'); + } else { + $Apache::inputtags::part=''; + @Apache::inputtags::partlist=(); + $Apache::lonhomework::problemstatus=''; + } + @Apache::inputtags::responselist = (); + @Apache::inputtags::importlist = (); + @Apache::inputtags::previous=(); + @Apache::inputtags::previous_version=(); + $Apache::structuretags::printanswer='No'; + @Apache::structuretags::whileconds=(); + @Apache::structuretags::whilebody=(); + @Apache::structuretags::whileline=(); + $Apache::lonhomework::scantronmode=0; + undef($Apache::lonhomework::name); + +} + +sub reset_problem_globals { + my ($type)=@_; + undef(%Apache::lonhomework::history); + undef(%Apache::lonhomework::results); + undef($Apache::inputtags::part); + undef($Apache::lonhomework::parsing_a_problem); + undef($Apache::lonhomework::name); +} + sub start_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -282,20 +321,7 @@ sub start_problem { } $Apache::lonhomework::parsing_a_problem=1; -#initialize globals - $Apache::inputtags::part='0'; - @Apache::inputtags::partlist=('0'); - @Apache::inputtags::responselist = (); - @Apache::inputtags::importlist = (); - @Apache::inputtags::previous=(); - @Apache::inputtags::previous_version=(); - $Apache::structuretags::printanswer='No'; - @Apache::structuretags::whileconds=(); - @Apache::structuretags::whilebody=(); - @Apache::structuretags::whileline=(); - $Apache::lonhomework::scantronmode=0; - $Apache::lonhomework::problemstatus= - &Apache::lonnet::EXT('resource.0.problemstatus'); + &init_problem_globals('problem'); if (defined($ENV{'scantron.maxquest'})) { $Apache::lonhomework::scantronmode=1; @@ -451,9 +477,9 @@ sub start_problem { print $temp_file "$duedate\n"; if (not $ENV{'request.symb'} =~ m/\.page_/) { if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') { - $result .= '\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource