version 1.61, 2002/11/11 20:13:47
|
version 1.67, 2003/01/19 08:10:22
|
Line 248 sub whichfoils {
|
Line 248 sub whichfoils {
|
my ($max,$randomize)=@_; |
my ($max,$randomize)=@_; |
$max = &getfoilcounts($max); |
$max = &getfoilcounts($max); |
&Apache::lonxml::debug("randomize $randomize"); |
&Apache::lonxml::debug("randomize $randomize"); |
|
if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;} |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
my @whichopt =(); |
my @whichopt =(); |
my (%top,@toplist,%bottom,@bottomlist); |
my (%top,@toplist,%bottom,@bottomlist); |
Line 294 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;} |
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=&Apache::response::answer_header('optionresponse'); |
Line 307 sub displayanswers {
|
Line 309 sub displayanswers {
|
|
|
sub displayfoils { |
sub displayfoils { |
my ($target,$max,$randomize,@opt)=@_; |
my ($target,$max,$randomize,@opt)=@_; |
|
if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;} |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
my @truelist; |
my @truelist; |
my @falselist; |
my @falselist; |
Line 318 sub displayfoils {
|
Line 321 sub displayfoils {
|
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]; |
if (($Apache::lonhomework::history{"resource.$part.solved"} =~ /^correct/) || ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER')) { |
my $break; |
my $temp=1; #### |
my $solved=$Apache::lonhomework::history{"resource.$part.solved"}; |
|
my $status=$Apache::inputtags::status[-1]; |
|
if ( |
|
($target ne 'tex') && |
|
(($solved =~ /^correct/) || ($status eq 'SHOW_ANSWER')) ) { |
foreach $name (@whichopt) { |
foreach $name (@whichopt) { |
if ($target eq 'web') { |
my $text=$Apache::response::foilgroup{$name.'.text'}; |
$result.="<br />"; |
if ($text!~/^\s*$/) { |
|
if ($target eq 'tex') { |
|
$break='\vskip 0 mm '; |
|
} elsif ($target eq 'web') { |
|
$break='<br />'; |
|
} |
|
} |
|
$result.=$break; |
|
if ($target eq 'web') { |
|
my $value=$Apache::response::foilgroup{$name.'.value'}; |
|
if (!($text=~s|<drawoptionlist\s*/>|$value|)) { |
|
if ($text=~/^\s*$/) { |
|
$text=$value.$text; |
|
} else { |
|
$text=$value.': '.$text; |
|
} |
|
} |
|
$result.=$text."\n"; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result.='\vskip 0 mm '; |
|
} |
|
if ($target ne 'tex') { |
|
my $text=$Apache::response::foilgroup{$name.'.text'}; |
|
my $value=$Apache::response::foilgroup{$name.'.value'}; |
|
if (!($text=~s|<drawoptionlist\s*/>|$value|)) { |
|
$text=$value.': '.$text; |
|
} |
|
$result.=$text."\n"; |
|
} else { |
|
$Apache::response::foilgroup{$name.'.text'}=~s/\\item//; |
$Apache::response::foilgroup{$name.'.text'}=~s/\\item//; |
$result .='\item \textit{'.$Apache::response::foilgroup{$name.'.value'}.'}'. |
$result .='\item \textit{'.$Apache::response::foilgroup{$name.'.value'}.'}'. |
":".$Apache::response::foilgroup{$name.'.text'}."\n"; |
":".$Apache::response::foilgroup{$name.'.text'}."\n"; |
Line 345 sub displayfoils {
|
Line 359 sub displayfoils {
|
$result.=&bubbles(\@alphabet,\@opt); |
$result.=&bubbles(\@alphabet,\@opt); |
} |
} |
} |
} |
$temp++; |
|
} |
} |
} else { |
} else { |
my $temp=1; |
my $temp=1; |
my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"}); |
my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"}); |
foreach $name (@whichopt) { |
foreach $name (@whichopt) { |
|
my $text=$Apache::response::foilgroup{$name.'.text'}; |
|
if ($text!~/^\s*$/) { |
|
if ($target eq 'tex') { |
|
$break='\vskip 0 mm '; |
|
} elsif ($target eq 'web') { |
|
$break='<br />'; |
|
} |
|
} |
my $lastopt=$lastresponse{$name}; |
my $lastopt=$lastresponse{$name}; |
my $optionlist="<option></option>\n"; |
my $optionlist="<option></option>\n"; |
my $option; |
my $option; |
Line 369 sub displayfoils {
|
Line 390 sub displayfoils {
|
if (!($text=~s|<drawoptionlist\s*/>|$optionlist|)) { |
if (!($text=~s|<drawoptionlist\s*/>|$optionlist|)) { |
$text=$optionlist.$text; |
$text=$optionlist.$text; |
} |
} |
$result.="<br />".$text."\n"; |
$result.=$break.$text."\n"; |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
$result.=&webbubbles(\@opt,\@alphabet); |
$result.=&webbubbles(\@opt,\@alphabet); |
} |
} |
Line 384 sub displayfoils {
|
Line 405 sub displayfoils {
|
} |
} |
if ($Apache::response::foilgroup{$name.'.text'}=~/<drawoptionlist\s*\/>/) { |
if ($Apache::response::foilgroup{$name.'.text'}=~/<drawoptionlist\s*\/>/) { |
$Apache::response::foilgroup{$name.'.text'}=~s|<drawoptionlist\s*/>| \\makebox\[0\.3in\]\[b\]\{\\hrulefill\} |; |
$Apache::response::foilgroup{$name.'.text'}=~s|<drawoptionlist\s*/>| \\makebox\[0\.3in\]\[b\]\{\\hrulefill\} |; |
$result.= $texoptionlist.$Apache::response::foilgroup{$name.'.text'}; |
|
} |
} |
|
$result.= $texoptionlist.$Apache::response::foilgroup{$name.'.text'}; |
} else { |
} else { |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
$result.= $texoptionlist.'\vspace*{-2 mm}\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'}; |
$result.= $texoptionlist.'\vspace*{-2 mm}\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'}; |
Line 395 sub displayfoils {
|
Line 416 sub displayfoils {
|
} |
} |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
$result.=&bubbles(\@alphabet,\@opt); |
$result.=&bubbles(\@alphabet,\@opt); |
|
$result.='\vskip 2 mm '; |
} |
} |
$displayoptionintex=1; |
$displayoptionintex=1; |
} else { |
} else { |
Line 415 sub displayfoils {
|
Line 437 sub displayfoils {
|
} |
} |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
$result.=&bubbles(\@alphabet,\@opt); |
$result.=&bubbles(\@alphabet,\@opt); |
|
$result.='\vskip 2 mm '; |
} |
} |
} |
} |
} |
} |
} |
} |
} |
|
if ($target ne 'tex') { |
|
return $result."<br />"; |
|
} |
} |
else { |
if ($target ne 'tex') { |
|
return $result.$break; |
|
} else { |
return $result; |
return $result; |
} |
} |
} |
} |
Line 440 sub optionlist_correction {
|
Line 462 sub optionlist_correction {
|
$texoptionlist =~ s/>/\$>\$/g; |
$texoptionlist =~ s/>/\$>\$/g; |
$texoptionlist =~ s/</\$<\$/g; |
$texoptionlist =~ s/</\$<\$/g; |
$texoptionlist =~ s/=/\$=\$/g; |
$texoptionlist =~ s/=/\$=\$/g; |
|
$texoptionlist =~ s/\^(\d+)/<m>\$$1\$<\/m>/g; |
return $texoptionlist; |
return $texoptionlist; |
} |
} |
|
|