Diff for /loncom/homework/structuretags.pm between versions 1.144.2.1 and 1.146

version 1.144.2.1, 2003/03/14 23:27:19 version 1.146, 2003/02/07 22:03:21
Line 43  BEGIN { Line 43  BEGIN {
   
 sub start_web {  sub start_web {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $bodytext=&Apache::lonxml::get_all_text("/web",$$parser[$#$parser]);    my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);
   if ($target eq 'web') {    if ($target eq 'web') {
     return $bodytext;      return $bodytext;
   }     } 
Line 56  sub end_web { Line 56  sub end_web {
   
 sub start_tex {  sub start_tex {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $bodytext=&Apache::lonxml::get_all_text("/tex",$$parser[$#$parser]);    my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);
   if ($target eq 'tex') {    if ($target eq 'tex') {
       return $bodytext.' ';        return $bodytext.' ';
   }    }
Line 245  sub start_problem { Line 245  sub start_problem {
   # won't get reset    # won't get reset
   if ( $Apache::inputtags::part ne '' && $target != 'meta' ) {    if ( $Apache::inputtags::part ne '' && $target != 'meta' ) {
     &Apache::lonxml::error('Only one problem allowed in a .problem file');      &Apache::lonxml::error('Only one problem allowed in a .problem file');
     my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[-1]);      my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser);
     return '';      return '';
   }    }
 #intialize globals  #intialize globals
   $Apache::inputtags::part='0';    $Apache::inputtags::part='0';
   @Apache::inputtags::responselist = ();    @Apache::inputtags::responselist = ();
   @Apache::inputtags::previous=();    @Apache::inputtags::previous=();
   @Apache::inputtags::previous_version=();  
   if ($target ne 'analyze') {    if ($target ne 'analyze') {
     &initialize_storage();      &initialize_storage();
     if ($target eq 'web') {      if ($target eq 'web') {
Line 451  sub end_problem { Line 450  sub end_problem {
       &Apache::lonhomework::showhash(%Apache::lonhomework::results);        &Apache::lonhomework::showhash(%Apache::lonhomework::results);
       &finalize_storage();        &finalize_storage();
     }      }
       if ($target eq 'answer' && ($ENV{'request.state'} eq 'construct') ) {
    $result.='</html>'; #normally we get it from xmlend, but in CSTR
                               # we always show answer mode too.
       }
   } elsif ($target eq 'meta') {    } elsif ($target eq 'meta') {
     if ($Apache::inputtags::part eq '0') {      if ($Apache::inputtags::part eq '0') {
       $result=&Apache::response::mandatory_part_meta;        $result=&Apache::response::mandatory_part_meta;
Line 523  sub start_block { Line 526  sub start_block {
     $result='1';      $result='1';
  }   }
  if ( ! $result ) {   if ( ! $result ) {
     my $skip=&Apache::lonxml::get_all_text("/block",$$parser[-1]);      my $skip=&Apache::lonxml::get_all_text("/block",$parser);
     &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");      &Apache::lonxml::debug("skipping ahead :$skip: $$parser[-1]");
  }   }
  $result='';   $result='';
Line 586  sub start_randomlist { Line 589  sub start_randomlist {
   my $result;    my $result;
   if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' ||    if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' ||
       $target eq 'tex' || $target eq 'analyze') {        $target eq 'tex' || $target eq 'analyze') {
     my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]);      my $body= &Apache::lonxml::get_all_text("/randomlist",$parser);
     my $b_parser= HTML::TokeParser->new(\$body);      my $b_parser= HTML::TokeParser->new(\$body);
     my $b_tok;      my $b_tok;
     my @randomlist;      my @randomlist;
Line 662  sub start_part { Line 665  sub start_part {
   $Apache::inputtags::part=$id;    $Apache::inputtags::part=$id;
   @Apache::inputtags::responselist = ();    @Apache::inputtags::responselist = ();
   @Apache::inputtags::previous=();    @Apache::inputtags::previous=();
   @Apache::inputtags::previous_version=();  
   if ($target eq 'meta') {    if ($target eq 'meta') {
     return &Apache::response::mandatory_part_meta;      return &Apache::response::mandatory_part_meta;
   } elsif ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {    } elsif ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {
Line 672  sub start_part { Line 674  sub start_part {
     $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';      $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';
     &Apache::run::run($expression,$safeeval);      &Apache::run::run($expression,$safeeval);
     if ( $status eq 'CLOSED' ) {      if ( $status eq 'CLOSED' ) {
       my $bodytext=&Apache::lonxml::get_all_text("/part",$$parser[$#$parser]);        my $bodytext=&Apache::lonxml::get_all_text("/part",$parser);
       if ( $target eq "web" ) {        if ( $target eq "web" ) {
  $result="<br />Part is not open to be viewed. It $accessmsg<br />";   $result="<br />Part is not open to be viewed. It $accessmsg<br />";
       } elsif ( $target eq 'tex' ) {        } elsif ( $target eq 'tex' ) {
Line 727  sub start_preduedate { Line 729  sub start_preduedate {
     if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&      if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
  $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' &&    $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' && 
         $Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') {          $Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') {
       &Apache::lonxml::get_all_text("/preduedate",$$parser[$#$parser]);        &Apache::lonxml::get_all_text("/preduedate",$parser);
     }      }
   }    }
   return '';    return '';
Line 741  sub start_postanswerdate { Line 743  sub start_postanswerdate {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   if ($target eq 'web' || $target eq 'grade' || $target eq 'tex') {    if ($target eq 'web' || $target eq 'grade' || $target eq 'tex') {
     if ($Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') {      if ($Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') {
       &Apache::lonxml::get_all_text("/postanswerdate",$$parser[$#$parser]);        &Apache::lonxml::get_all_text("/postanswerdate",$parser);
     }      }
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       return '\vskip 0 mm \noindent';        return '\vskip 0 mm \noindent';
Line 760  sub start_notsolved { Line 762  sub start_notsolved {
     &Apache::lonxml::debug("not solved has :$gradestatus:");      &Apache::lonxml::debug("not solved has :$gradestatus:");
     if ($gradestatus =~ /^correct/) {      if ($gradestatus =~ /^correct/) {
       &Apache::lonxml::debug("skipping");        &Apache::lonxml::debug("skipping");
       &Apache::lonxml::get_all_text("/notsolved",$$parser[$#$parser]);        &Apache::lonxml::get_all_text("/notsolved",$parser);
     }      }
   }    }
   return '';    return '';
Line 775  sub start_solved { Line 777  sub start_solved {
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {    if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {
     my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};      my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};
     if ($gradestatus !~ /^correct/) {      if ($gradestatus !~ /^correct/) {
       &Apache::lonxml::get_all_text("/solved",$$parser[$#$parser]);        &Apache::lonxml::get_all_text("/solved",$parser);
     }      }
   }    }
   return '';    return '';
Line 797  sub end_startouttext { Line 799  sub end_startouttext {
   my $text='';    my $text='';
   
   if ($target eq 'edit') {    if ($target eq 'edit') {
     $text=&Apache::lonxml::get_all_text("endouttext",$$parser[-1]);      $text=&Apache::lonxml::get_all_text("endouttext",$parser);
     $result.=&Apache::edit::start_table($token)."<tr><td>Text Block</td>      $result.=&Apache::edit::start_table($token)."<tr><td>Text Block</td>
 <td>Delete:".  <td>Delete:".
   &Apache::edit::deletelist($target,$token)    &Apache::edit::deletelist($target,$token)
Line 808  sub end_startouttext { Line 810  sub end_startouttext {
       &Apache::edit::editfield($token->[1],$text,"",80,4);        &Apache::edit::editfield($token->[1],$text,"",80,4);
   }    }
   if ($target eq 'modified') {    if ($target eq 'modified') {
     $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']);      $text=&Apache::lonxml::get_all_text("endouttext",$parser);
     $result='<startouttext />'.&Apache::edit::modifiedfield();      $result='<startouttext />'.&Apache::edit::modifiedfield();
   }    }
   if ($target eq 'tex') {    if ($target eq 'tex') {
Line 833  sub end_endouttext { Line 835  sub end_endouttext {
 }  }
 sub delete_startouttext {  sub delete_startouttext {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
 #  my $text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']);  #  my $text=&Apache::lonxml::get_all_text("endouttext",$parser);
   my $text=$$parser['-1']->get_text("/endouttext");    my $text=$$parser['-1']->get_text("/endouttext");
   my $ntoken=$$parser['-1']->get_token();    my $ntoken=$$parser['-1']->get_token();
   &Apache::lonxml::debug("Deleting :$text: and :$ntoken->[0]:$ntoken->[1]:$ntoken->[2]: for startouttext");    &Apache::lonxml::debug("Deleting :$text: and :$ntoken->[0]:$ntoken->[1]:$ntoken->[2]: for startouttext");

Removed from v.1.144.2.1  
changed lines
  Added in v.1.146


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>