--- loncom/homework/structuretags.pm 2005/11/09 12:04:23 1.319 +++ loncom/homework/structuretags.pm 2005/11/15 21:13:42 1.321 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.319 2005/11/09 12:04:23 foxr Exp $ +# $Id: structuretags.pm,v 1.321 2005/11/15 21:13:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -513,7 +513,9 @@ sub start_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; # We'll use the redirection to fix up printing of duedates. - &Apache::lonxml::startredirection(); + if (!$Apache::lonxml::metamode) { + &Apache::lonxml::startredirection(); + } # Problems don't nest and we don't allow more than one in # a .problem file. @@ -683,14 +685,20 @@ sub start_problem { sub end_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my $result= &Apache::lonxml::endredirection(); # started in &start_problem + my $result; - # Figure out the front matter which was too deeply coupled for me to easily - # unravel and replace the INSERTTEXFRONTMATTERHERE in result with it. - # note that we do this in end_problem because whether or not we display - # due dates depends on whether due dates have already been displayed in the problem parts. + if (!$Apache::lonxml::metamode) { + $result = &Apache::lonxml::endredirection(); #started in &start_problem + } if ($target eq 'tex') { + + # Figure out the front matter and replace the + # INSERTTEXFRONTMATTERHERE in result with it. note that we do + # this in end_problem because whether or not we display due + # dates depends on whether due dates have already been + # displayed in the problem parts. + my $frontmatter = ''; my $startminipage = ''; if (not $env{'form.problem_split'}=~/yes/) { @@ -841,6 +849,9 @@ sub end_problem { } elsif ($target eq 'edit') { &Apache::lonxml::debug("in end_problem with $target, edit"); $result .= &problem_edit_footer(); + } elsif ($target eq 'modified') { + $result .= $token->[2]; + $result.=&Apache::edit::handle_insertafter($token->[1]); } if ($env{'request.state'} eq 'construct' && $target eq 'web') { @@ -1212,8 +1223,10 @@ sub ordered_show_check { sub start_part { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - &Apache::lonxml::startredirection(); # we'll use redirection to fix up - # duedates. + if (!$Apache::lonxml::metamode) { + &Apache::lonxml::startredirection(); # we'll use redirection to fix up + # duedates. + } my $result=''; my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; } @@ -1322,7 +1335,10 @@ sub end_part { my $status=$Apache::inputtags::status['-1']; my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part); my $in_order_show=&ordered_show_check(); - my $result= &Apache::lonxml::endredirection(); # started in &start_part + my $result; + if (!$Apache::lonxml::metamode) { + $result = &Apache::lonxml::endredirection(); # started in &start_part + } if ($target eq 'grade') { if (($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) && !$hidden && $in_order_show) {