Diff for /loncom/homework/structuretags.pm between versions 1.70 and 1.71

version 1.70, 2001/10/13 05:59:18 version 1.71, 2001/10/30 19:18:15
Line 379  sub end_while { Line 379  sub end_while {
 # </randomlist>  # </randomlist>
 sub start_randomlist {  sub start_randomlist {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]);    if ($target eq 'answer' || $target eq 'grade' || $target eq 'web') {
   my $b_parser= HTML::TokeParser->new(\$body);      my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]);
   my $b_tok;      my $b_parser= HTML::TokeParser->new(\$body);
   my @randomlist;      my $b_tok;
   my $list_item;      my @randomlist;
       my $list_item;
   while($b_tok = $b_parser->get_token() ) {      while($b_tok = $b_parser->get_token() ) {
     if($b_tok->[0] eq 'S') { # start tag        if($b_tok->[0] eq 'S') { # start tag
     # get content of the tag until matching end tag   # get content of the tag until matching end tag
     # get all text upto the matching tag   # get all text upto the matching tag
     # and push the content into @randomlist   # and push the content into @randomlist
       $list_item = &Apache::lonxml::get_all_text('/'.$b_tok->[1],$b_parser);   $list_item = &Apache::lonxml::get_all_text('/'.$b_tok->[1],$b_parser);
       $list_item = "$b_tok->[4]"."$list_item"."</$b_tok->[1]>";   $list_item = "$b_tok->[4]"."$list_item"."</$b_tok->[1]>";
       push(@randomlist,$list_item);   push(@randomlist,$list_item);
    #  print "<br /><b>START-TAG $b_tok->[1], $b_tok->[4], $list_item</b>";   #  print "<br /><b>START-TAG $b_tok->[1], $b_tok->[4], $list_item</b>";
         }
         if($b_tok->[0] eq 'T') { # text
    # what to do with text in between tags?
    #  print "<b>TEXT $b_tok->[1]</b><br />";
         }
         # if($b_tok->[0] eq 'E') { # end tag, should not happen
         #  print "<b>END-TAG $b_tok->[1]</b><br />";
         # }
     }      }
     if($b_tok->[0] eq 'T') { # text  
     # what to do with text in between tags?      my @idx_arr = (0 .. $#randomlist);
       #  print "<b>TEXT $b_tok->[1]</b><br />";      &Apache::structuretags::shuffle(\@idx_arr);
       my $bodytext = '';
       for(0 .. $#randomlist) {
         $bodytext .= "$randomlist[ $idx_arr[$_] ]";
     }      }
     # if($b_tok->[0] eq 'E') { # end tag, should not happen      &Apache::lonxml::newparser($parser,\$bodytext);
       #  print "<b>END-TAG $b_tok->[1]</b><br />";  
     # }  
   }  
   my @idx_arr = (0 .. $#randomlist);  
   &Apache::structuretags::shuffle(\@idx_arr);  
   my $bodytext = '';  
   for(0 .. $#randomlist) {  
     $bodytext .= "$randomlist[ $idx_arr[$_] ]";  
   }    }
   
   &Apache::lonxml::newparser($parser,\$bodytext);  
   return "";    return "";
 }  }
   

Removed from v.1.70  
changed lines
  Added in v.1.71


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