Diff for /loncom/homework/optionresponse.pm between versions 1.107 and 1.116

version 1.107, 2004/04/23 17:57:18 version 1.116, 2004/07/29 19:40:23
Line 38  sub start_optionresponse { Line 38  sub start_optionresponse {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result='';    my $result='';
   #when in a option response use these    #when in a option response use these
   &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup'));    &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist'));
   push (@Apache::lonxml::namespace,'optionresponse');    push (@Apache::lonxml::namespace,'optionresponse');
   my $id = &Apache::response::start_response($parstack,$safeeval);    my $id = &Apache::response::start_response($parstack,$safeeval);
   %Apache::hint::option=();    %Apache::hint::option=();
Line 56  sub start_optionresponse { Line 56  sub start_optionresponse {
      $token,'4').       $token,'4').
         &Apache::edit::select_arg('Randomize Foil Order','randomize',          &Apache::edit::select_arg('Randomize Foil Order','randomize',
   ['yes','no'],$token).    ['yes','no'],$token).
           &Apache::edit::select_arg(&mt('Display of options when printed'),'TeXlayout',
     [['horizontal',&mt('Normal list')],
      ['vertical',&mt('Listed in a vertical column')]],$token).
         &Apache::edit::end_row().&Apache::edit::start_spanning_row();          &Apache::edit::end_row().&Apache::edit::start_spanning_row();
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
     my $constructtag=&Apache::edit::get_new_args($token,$parstack,      my $constructtag=&Apache::edit::get_new_args($token,$parstack,
  $safeeval,'max','randomize');   $safeeval,'max','randomize',
    'TeXlayout');
     if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }      if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
   } elsif ($target eq 'meta') {    } elsif ($target eq 'meta') {
     $result=&Apache::response::meta_package_write('optionresponse');      $result=&Apache::response::meta_package_write('optionresponse');
Line 74  sub end_optionresponse { Line 78  sub end_optionresponse {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   &Apache::response::end_response;    &Apache::response::end_response;
   pop @Apache::lonxml::namespace;    pop @Apache::lonxml::namespace;
   &Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup'));    &Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist'));
   my $result;    my $result;
   if ($target eq 'edit') { $result=&Apache::edit::end_table(); }    if ($target eq 'edit') { $result=&Apache::edit::end_table(); }
   undef(%Apache::response::foilnames);    undef(%Apache::response::foilnames);
Line 88  sub start_foilgroup { Line 92  sub start_foilgroup {
   my $result='';    my $result='';
   %Apache::response::foilgroup=();    %Apache::response::foilgroup=();
   $Apache::optionresponse::conceptgroup=0;    $Apache::optionresponse::conceptgroup=0;
   &Apache::response::setrandomnumber();    &Apache::response::pushrandomnumber();
   if ($target eq 'edit') {    if ($target eq 'edit') {
     my $optionlist="<option></option>\n";      my $optionlist="<option></option>\n";
     my $option;      my $option;
Line 144  ENDTABLE Line 148  ENDTABLE
     } # else nothing changed so just use the default mechanism      } # else nothing changed so just use the default mechanism
   }    }
   if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {    if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {
       $result .= ' \begin{enumerate} ';        $result .= ' \renewcommand{\labelenumi}{\Alph{enumi}.}
                      \begin{enumerate} ';
   }    }
   return $result;    return $result;
 }  }
Line 159  sub end_foilgroup { Line 164  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);
     my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,undef,0);      my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,
     &Apache::lonnet::logthis("PARAMETER U>$TeXlayout<U");       -2,0);
     if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}      if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}
     &Apache::lonxml::debug("Options are $#opt");      &Apache::lonxml::debug("Options are $#opt");
     my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');      my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
Line 252  sub end_foilgroup { Line 257  sub end_foilgroup {
   if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {    if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {
       $result .= '\end{enumerate}';        $result .= '\end{enumerate}';
   }    }
     &Apache::response::poprandomnumber();
   return $result;    return $result;
 }  }
   
Line 309  sub check_for_invalid { Line 315  sub check_for_invalid {
   
 sub displayfoils {  sub displayfoils {
   my ($target,$max,$randomize,$TeXlayout,@opt)=@_;    my ($target,$max,$randomize,$TeXlayout,@opt)=@_;
   &Apache::lonnet::logthis("PARAMETER >>$TeXlayout<<");  
   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 @truelist;    my @truelist;
Line 345  sub displayfoils { Line 350  sub displayfoils {
  $text='&#149;'.$text;   $text='&#149;'.$text;
     }      }
     $result.=$text."\n";      $result.=$text."\n";
       }   }
       if ($Apache::lonhomework::type eq 'exam') {        if ($Apache::lonhomework::type eq 'exam') {
   $result.=&webbubbles(\@opt,\@alphabet,$temp,$lastopt);    $result.=&webbubbles(\@opt,\@alphabet,$temp,$lastopt);
       }        }
Line 438  sub displayfoils { Line 443  sub displayfoils {
   
 sub optionlist_correction {  sub optionlist_correction {
     my ($TeXlayout,@options) = @_;      my ($TeXlayout,@options) = @_;
     &Apache::lonnet::logthis("PARAMETER >$TeXlayout<");  
     my $texoptionlist='\\item [] Choices: ';      my $texoptionlist='\\item [] Choices: ';
     if ($TeXlayout eq 'vertical') {$texoptionlist='\\item []';}      if ($TeXlayout eq 'vertical') {$texoptionlist='\\item []';}
     if (scalar(@options) > 0) {      if (scalar(@options) > 0) {
Line 449  sub optionlist_correction { Line 453  sub optionlist_correction {
     if ($TeXlayout eq 'vertical') {      if ($TeXlayout eq 'vertical') {
  $texoptionlist.=' \vskip 0 mm ',   $texoptionlist.=' \vskip 0 mm ',
     } else {      } else {
  $texoptionlist.=',';   $texoptionlist.=', ';
     }      }
  }   }
  chop($texoptionlist);   $texoptionlist=~s/, $//;
  if ($TeXlayout ne 'vertical') {$texoptionlist.='.';}   if ($TeXlayout ne 'vertical') {$texoptionlist.='.';}
     } else {      } else {
  if ($TeXlayout ne 'vertical') {$texoptionlist='\\item [] \\vskip -5 mm';}   if ($TeXlayout ne 'vertical') {$texoptionlist='\\item [] \\vskip -5 mm';}
Line 475  sub webbubbles { Line 479  sub webbubbles {
  }   }
  $result.='<td><input type="radio" name="HWVAL_'.   $result.='<td><input type="radio" name="HWVAL_'.
     $Apache::inputtags::response['-1'].':'.$temp.      $Apache::inputtags::response['-1'].':'.$temp.
     '" value="'.$opt[$ind].'" '.$checked.' />'.$alphabet[$ind].': '.      '" value="'.$opt[$ind].'" '.$checked.' />';
     $opt[$ind].'</td>';   if ($alphabet[$ind]) {
       $result.=$alphabet[$ind].': ';
    }
    $result.=$opt[$ind].'</td>';
     }      }
     $result.='</tr></table>';      $result.='</tr></table>';
     return $result;      return $result;
Line 596  sub end_foil { Line 603  sub end_foil {
   my $result = '';    my $result = '';
   if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {     if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { 
       $text=&Apache::lonxml::endredirection;        $text=&Apache::lonxml::endredirection;
       $text=~/(\w)/;        if ($target eq 'tex') {$text=~s/\\strut\s*\\\\\s*\\strut/\\vskip 0 mm/;}
       &Apache::lonnet::logthis("TTTEXT IS HERE NOW >>$text<< >>>$1<<<");  
       if (($target eq 'tex') and ($Apache::lonhomework::type ne 'exam') and ($text=~/\S/)) {$text = '\vspace*{-2 mm}\item '.$text;}         if (($target eq 'tex') and ($Apache::lonhomework::type ne 'exam') and ($text=~/\S/)) {$text = '\vspace*{-2 mm}\item '.$text;} 
   }    }
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer'     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' 
Line 641  sub end_foil { Line 647  sub end_foil {
   return $result;    return $result;
 }  }
   
   sub start_drawoptionlist {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       return $token->[4];
   }
   
   sub end_drawoptionlist {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       return $token->[2];
   }
   
 sub insert_foil {  sub insert_foil {
   return '    return '
 <foil name="" value="unused">  <foil name="" value="unused">

Removed from v.1.107  
changed lines
  Added in v.1.116


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