Diff for /loncom/homework/optionresponse.pm between versions 1.49 and 1.54

version 1.49, 2002/10/01 14:39:45 version 1.54, 2002/10/24 19:51:49
Line 321  sub displayfoils { Line 321  sub displayfoils {
   $result .=$Apache::response::foilgroup{$name.'.value'}.    $result .=$Apache::response::foilgroup{$name.'.value'}.
       ":".$Apache::response::foilgroup{$name.'.text'}."\n";        ":".$Apache::response::foilgroup{$name.'.text'}."\n";
       } else {        } else {
     $Apache::response::foilgroup{$name.'.text'}=~s/\\item//;
    $result .='\item '.$Apache::response::foilgroup{$name.'.value'}.     $result .='\item '.$Apache::response::foilgroup{$name.'.value'}.
       ":".$Apache::response::foilgroup{$name.'.text'}."\n";        ":".$Apache::response::foilgroup{$name.'.text'}."\n";
       }        }
Line 354  sub displayfoils { Line 355  sub displayfoils {
   $temp++;    $temp++;
       } else {        } else {
   if ($displayoptionintex == 0) {    if ($displayoptionintex == 0) {
               my $texoptionlist = $optionlist;                my $texoptionlist = &optionlist_correction($optionlist);
       $texoptionlist =~ s/<option><\/option>/\\item \[\] The possible answers are:/;        if ($Apache::lonhomework::type eq 'exam') {$texoptionlist='';}
       $texoptionlist =~ s/<option>/{\\bf /g;  
       $texoptionlist =~ s/<option selected="on">/{\\bf /g;  
       $texoptionlist =~ s/<\/option>/},/g;  
       $texoptionlist =~ s/,$/\./g;  
       $texoptionlist =~ s/>/\$>\$/g;  
       $texoptionlist =~ s/</\$<\$/g;  
       $texoptionlist =~ s/=/\$=\$/g;  
       if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {        if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {
     if ($Apache::lonhomework::type eq 'exam') {
         $Apache::response::foilgroup{$name.'.text'}=~s/\\item/\\item[\\textbf{$Apache::lonxml::counter}\.]/;
     }
   $result.= $texoptionlist.$Apache::response::foilgroup{$name.'.text'};    $result.= $texoptionlist.$Apache::response::foilgroup{$name.'.text'};
       } else {        } else {
   $result.= $texoptionlist.'\item '.$Apache::response::foilgroup{$name.'.text'};  
       }  
   if ($Apache::lonhomework::type eq 'exam') {    if ($Apache::lonhomework::type eq 'exam') {
       my $number_of_bubbles = $#opt + 1;        $result.= $texoptionlist.'\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
       $result.= '\vskip 2 mm \noindent \begin{tabular}{|';    } else {
       for (my $ind=0;$ind<$number_of_bubbles;$ind++) {        $result.= $texoptionlist.'\item '.$Apache::response::foilgroup{$name.'.text'};
   $result.='lr|';  
       }  
       $result.='}\hline ';  
       for (my $ind=0;$ind<$number_of_bubbles;$ind++) {  
   $result.=' '.$alphabet[$ind].': & '.$opt[$ind].' ';  
   if ($ind != $number_of_bubbles - 1) {$result.=' & ';}  
       }  
       $result.='\\\\\hline\end{tabular}\vskip 0 mm ';  
   }    }
         }
         if ($Apache::lonhomework::type eq 'exam') {
     $result.=&bubbles(\@alphabet,\@opt);
         }
       $displayoptionintex=1;        $displayoptionintex=1;
   } else {    } else {
       if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {        if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {
     if ($Apache::lonhomework::type eq 'exam') {
         $Apache::response::foilgroup{$name.'.text'}=~s/\\item/\\item[\\textbf{$Apache::lonxml::counter}\.]/;
     }
   $result.= $Apache::response::foilgroup{$name.'.text'};    $result.= $Apache::response::foilgroup{$name.'.text'};
       } else {        } else {
   $result.= '\item '.$Apache::response::foilgroup{$name.'.text'};  
       }  
   if ($Apache::lonhomework::type eq 'exam') {    if ($Apache::lonhomework::type eq 'exam') {
       my $number_of_bubbles = $#opt + 1;        $result.= '\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
       $result.= '\vskip 2 mm \noindent \begin{tabular}{|';    } else {
       for (my $ind=0;$ind<$number_of_bubbles;$ind++) {        $result.= '\item '.$Apache::response::foilgroup{$name.'.text'};
   $result.='lr|';  
       }  
       $result.='}\hline ';  
       for (my $ind=0;$ind<$number_of_bubbles;$ind++) {  
   $result.=' '.$alphabet[$ind].': & '.$opt[$ind].' ';  
   if ($ind != $number_of_bubbles - 1) {$result.=' & ';}  
       }  
       $result.='\\\\\hline\end{tabular}\vskip 0 mm ';  
   }    }
         }
         if ($Apache::lonhomework::type eq 'exam') {
     $result.=&bubbles(\@alphabet,\@opt);
         }
   }    }
       }         } 
     }      }
Line 414  sub displayfoils { Line 402  sub displayfoils {
 }  }
   
   
   sub optionlist_correction {
   
       my $texoptionlist = shift;
       $texoptionlist =~ s/<option><\/option>/\\item \[\] Possible answers are:/;
       $texoptionlist =~ s/<option>/\{\\bf /g;
       $texoptionlist =~ s/<option selected="on">/\{\\bf /g;
       $texoptionlist =~ s/<\/option>/\},/g;
       $texoptionlist =~ s/,$/\./g;
       $texoptionlist =~ s/>/\$>\$/g;
       $texoptionlist =~ s/</\$<\$/g;
       $texoptionlist =~ s/=/\$=\$/g;
       return $texoptionlist;
   }
   
   
   sub bubbles {
   
       my ($ralphabit,$ropt) = @_;
       my @alphabet = @$ralphabit;
       my @opt = @$ropt;
       my ($result,$head,$line) =('','','');
       my $number_of_bubbles = $#opt + 1;
       my $current_length = 0;
       for (my $ind=0;$ind<=$number_of_bubbles;$ind++) {
    $current_length += (length($opt[$ind])+length($alphabet[$ind])+2)*2;
    if ($current_length<0.9*$ENV{'form.textwidth'} and $ind!=$number_of_bubbles) {
       $line.='\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';
       $head.='lr';
    } else {
       $line=~s/\&\s*$//;
       $result.='\vskip -5 mm\begin{tabular}{'.$head.'}\\\\'.$line.'\\\\\end{tabular}';
       $line = '\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';;
       $head ='lr';
       $current_length = (length($opt[$ind])+length($alphabet[$ind]))*2;
    }
   
       }
       &Apache::lonxml::increment_counter();
       return $result;
   }
   
   
 sub start_conceptgroup {  sub start_conceptgroup {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   $Apache::optionresponse::conceptgroup=1;    $Apache::optionresponse::conceptgroup=1;
Line 516  sub end_foil { Line 546  sub end_foil {
   my $result = '';    my $result = '';
   if ($target eq 'web' || $target eq 'tex') {     if ($target eq 'web' || $target eq 'tex') { 
       $text=&Apache::lonxml::endredirection;        $text=&Apache::lonxml::endredirection;
       if ($target eq 'tex') { $text = '\item '.$text; }        if ($target eq 'tex') { $text = '\item '.$text; 
   }    }
   if ($target eq 'web' || $target eq 'grade' || $target eq 'answer'     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' 
       || $target eq 'tex' || $target eq 'analyze') {        || $target eq 'tex' || $target eq 'analyze') {

Removed from v.1.49  
changed lines
  Added in v.1.54


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