Diff for /loncom/homework/optionresponse.pm between versions 1.125 and 1.130

version 1.125, 2005/04/07 06:56:22 version 1.130, 2005/12/06 10:03:57
Line 165  sub end_foilgroup { Line 165  sub end_foilgroup {
     my $name;      my $name;
     my @opt;      my @opt;
     eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);      eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);
       &Apache::lonxml::debug("options:".join(':',@opt));
   
     my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,      my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,
      -2,0);       -2,0);
     if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}      if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}
Line 293  sub whichfoils { Line 295  sub whichfoils {
 }  }
   
 sub displayanswers {  sub displayanswers {
   my ($max,$randomize,@opt)=@_;      my ($max,$randomize,@opt)=@_;
   if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;}      if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;}
   my @names = @{ $Apache::response::foilgroup{'names'} };      my @names = @{ $Apache::response::foilgroup{'names'} };
   my @whichopt = &whichfoils($max,$randomize);      my @whichopt = &whichfoils($max,$randomize);
   my $result=&Apache::response::answer_header('optionresponse');      my $result;
   foreach my $name (@whichopt) {      if ($Apache::lonhomework::type eq 'exam') {
     $result.=&Apache::response::answer_part('optionresponse',   my $i = 0;
      $Apache::response::foilgroup{$name.'.value'})   my %opt = map { ($_,$i++) } @opt;
   }  
   $result.=&Apache::response::answer_footer('optionresponse');   $i = 0;
   return $result;   my @alphabet = ('A'..'Z');
    foreach my $name (@whichopt) {
       $result.=&Apache::response::answer_header('optionresponse',$i++);
       $result.=&Apache::response::answer_part('optionresponse',
       $alphabet[$opt{$Apache::response::foilgroup{$name.'.value'}}]);
       $result.=&Apache::response::answer_part('optionresponse',
       $Apache::response::foilgroup{$name.'.value'});
       $result.=&Apache::response::answer_footer('optionresponse');
    }
       } else {
    $result=&Apache::response::answer_header('optionresponse');
    foreach my $name (@whichopt) {
       $result.=&Apache::response::answer_part('optionresponse',
       $Apache::response::foilgroup{$name.'.value'});
    }
    $result.=&Apache::response::answer_footer('optionresponse');
       }
       return $result;
 }  }
   
 sub check_for_invalid {  sub check_for_invalid {
Line 358  sub displayfoils { Line 377  sub displayfoils {
  if ($text=~/^\s*$/) {   if ($text=~/^\s*$/) {
     $text=$value.$text;      $text=$value.$text;
  } else {   } else {
     $text=$value.': '.$text;      $text='<b>'.$value.':</b> '.$text;
  }   }
     } else {      } else {
  $text='&#149;'.$text;   $text='&#149;'.$text;
Line 385  sub displayfoils { Line 404  sub displayfoils {
       }        }
       my $lastopt=$lastresponse{$name};        my $lastopt=$lastresponse{$name};
       my $optionlist="<option></option>\n";        my $optionlist="<option></option>\n";
       my $option;        foreach my $option (@opt) {
       foreach $option (@opt) {    my $escopt=&HTML::Entities::encode($option,'\'"&<>');
  if ($option eq $lastopt) {    if ($option eq $lastopt) {
   $optionlist.="<option selected=\"on\">$option</option>\n";        $optionlist.="<option value='".$escopt."' selected=\"on\">$option</option>\n";
  } else {    } else {
   $optionlist.="<option>$option</option>\n";        $optionlist.="<option value='".$escopt."'>$option</option>\n";
  }    }
       }        }
       if ($target ne 'tex') {        if ($target ne 'tex') {
   if ($Apache::lonhomework::type ne 'exam') {    if ($Apache::lonhomework::type ne 'exam') {
Line 630  sub end_foil { Line 649  sub end_foil {
     if ($value ne 'unused') {      if ($value ne 'unused') {
       my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);        my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
       &Apache::lonxml::debug("Got a name of :$name:");        &Apache::lonxml::debug("Got a name of :$name:");
       if (!$name) {        if ($name eq "") {
   &Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction.");    &Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction.");
   $name=$Apache::lonxml::curdepth;    $name=$Apache::lonxml::curdepth;
       }        }
       &Apache::lonxml::debug("Using a name of :$name:");        &Apache::lonxml::debug("Using a name of :$name:");

Removed from v.1.125  
changed lines
  Added in v.1.130


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