version 1.1, 2001/02/07 00:29:59
|
version 1.2, 2001/02/09 03:42:59
|
Line 37 sub setrandomnumber {
|
Line 37 sub setrandomnumber {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub getfoilcounts { |
|
my ($parstack,$safeeval)=@_; |
|
my $rrargs =''; |
|
if ( $#$parstack > 0 ) { $rrargs=$$parstack['-2']; } |
|
my $max = &Apache::run::run("{$rrargs;".'return $max}',$safeeval); |
|
my $count = $#{ $Apache::response::foilgroup{'names'} }; |
|
return ($count,$max); |
|
} |
|
|
|
sub whichfoils { |
|
my ($max)=@_; |
|
my @names = @{ $Apache::response::foilgroup{'names'} }; |
|
my @whichopt =(); |
|
while ((($#whichopt+1) < $max) && ($#names > -1)) { |
|
my $aopt=int rand $#names; |
|
&Apache::lonxml::debug("From $#names elms, picking $aopt"); |
|
$aopt=splice(@names,$aopt,1); |
|
&Apache::lonxml::debug("Picked $aopt"); |
|
push (@whichopt,$aopt); |
|
} |
|
return @whichopt; |
|
} |
|
|
|
sub displayfoils { |
|
my (@whichopt) = @_; |
|
my $result =''; |
|
#<input type=image name=timg0 src=/~walt/kap18/picts/ch1map.gif> |
|
my $name; |
|
my $temp=1; |
|
foreach $name (@whichopt) { |
|
$result.=$Apache::response::foilgroup{"$name.text"}."<br />\n"; |
|
my $image=$Apache::response::foilgroup{"$name.image"}; |
|
$result.="<input type=\"image\" name=\"HWVAL_$Apache::inputtags::response['-1']:$temp\" src=\"$image\"/> <br />\n"; |
|
$temp++; |
|
} |
|
return $result; |
|
} |
|
|
sub end_foilgroup { |
sub end_foilgroup { |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
|
my $result=''; |
|
if ($target eq 'web' || $target eq 'grade') { |
|
&setrandomnumber(); |
|
my ($count,$max) = &getfoilcounts($parstack,$safeeval); |
|
if ($count>$max) { $count=$max } |
|
&Apache::lonxml::debug("Count is $count from $max"); |
|
my @whichopt = &whichfoils($max); |
|
} |
|
if ($target eq 'web') { |
|
$result=&displayfoils(@whichopt); |
|
} |
|
if ($target eq 'grade') { |
|
&gradefoils(@whichopt); |
|
} |
|
return $result; |
} |
} |
|
|
sub start_conceptgroup { |
sub start_conceptgroup { |
Line 91 sub end_text {
|
Line 143 sub end_text {
|
|
|
sub start_image { |
sub start_image { |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web') { $Apache::lonxml::redirection--; } |
|
return ''; |
} |
} |
|
|
sub end_image { |
sub end_image { |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web') { |
|
my $name = $Apache::imageresponse::curname; |
|
$Apache::response::foilgroup{"$name.image"} = $Apache::lonxml::outputstack; |
|
if ($target eq 'web' ) { |
|
$Apache::lonxml::redirection++; |
|
if ($Apache::lonxml::redirection == 1) {$Apache::lonxml::outputstack='';} |
|
} |
|
} |
|
return ''; |
} |
} |
|
|
sub start_rectangle { |
sub start_rectangle { |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web') { $Apache::lonxml::redirection--; } |
|
return ''; |
} |
} |
|
|
sub end_rectangle { |
sub end_rectangle { |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; |
|
if ($target eq 'web') { |
|
my $name = $Apache::imageresponse::curname; |
|
push ${ $Apache::response::foilgroup{"$name.area"}},"rectangle:$Apache::lonxml::outputstack"; |
|
if ($target eq 'web' ) { |
|
$Apache::lonxml::redirection++; |
|
if ($Apache::lonxml::redirection == 1) {$Apache::lonxml::outputstack='';} |
|
} |
|
} |
} |
} |
1; |
1; |
__END__ |
__END__ |