Diff for /loncom/homework/optionresponse.pm between versions 1.48 and 1.52

version 1.48, 2002/09/26 21:41:30 version 1.52, 2002/10/17 14:40:05
Line 305  sub displayfoils { Line 305  sub displayfoils {
   my $result;    my $result;
   my $name;    my $name;
   my $displayoptionintex=0;    my $displayoptionintex=0;
     my @alphabet = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
     'Q','R','S','T','U','V','W','X','Y','Z');
   my @whichopt = &whichfoils($max,$randomize);    my @whichopt = &whichfoils($max,$randomize);
   my $part=$Apache::inputtags::part;    my $part=$Apache::inputtags::part;
   my $id=$Apache::inputtags::response[-1];    my $id=$Apache::inputtags::response[-1];
Line 341  sub displayfoils { Line 343  sub displayfoils {
   $result.="<br /><select name=\"HWVAL_$Apache::inputtags::response['-1']:$temp\">"    $result.="<br /><select name=\"HWVAL_$Apache::inputtags::response['-1']:$temp\">"
       .$optionlist        .$optionlist
   ."</select>\n".$Apache::response::foilgroup{$name.'.text'}."\n";    ."</select>\n".$Apache::response::foilgroup{$name.'.text'}."\n";
     if ($Apache::lonhomework::type eq 'exam') {
     my $number_of_bubbles = $#opt + 1;
     $result.= '<table border="1"><tr>';
     for (my $ind=0;$ind<$number_of_bubbles;$ind++) {
         $result.='<td>'.$alphabet[$ind].': '.$opt[$ind].'</td>';
     }
     $result.='</tr></table>';
     }
   $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') {
         $result.= $texoptionlist.'\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
     } else {
         $result.= $texoptionlist.'\item '.$Apache::response::foilgroup{$name.'.text'};
     }
         }
         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') {
         $result.= '\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
     } else {
         $result.= '\item '.$Apache::response::foilgroup{$name.'.text'};
     }
         }
         if ($Apache::lonhomework::type eq 'exam') {
     $result.=&bubbles(\@alphabet,\@opt);
       }        }
   }    }
       }         } 
Line 378  sub displayfoils { Line 401  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::counter++;
       my %moreenv;
       $moreenv{'form.counter'}=$Apache::lonxml::counter;
       &Apache::lonnet::appenv(%moreenv);
       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.48  
changed lines
  Added in v.1.52


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