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

version 1.49, 2002/10/01 14:39:45 version 1.55, 2002/10/25 18:42:59
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 {
    $result .='\item '.$Apache::response::foilgroup{$name.'.value'}.    $Apache::response::foilgroup{$name.'.text'}=~s/\\item//;
      $result .='\item \textit{'.$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;

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


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