--- loncom/homework/optionresponse.pm 2001/03/01 00:59:33 1.5 +++ loncom/homework/optionresponse.pm 2001/05/15 20:48:43 1.7 @@ -3,6 +3,7 @@ # 2/21 Guy package Apache::optionresponse; use strict; +use Apache::response; sub BEGIN { &Apache::lonxml::register('Apache::optionresponse',('optionresponse')); @@ -12,31 +13,30 @@ sub start_optionresponse { my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; #when in a radiobutton response use these &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup')); + push (@Apache::lonxml::namespace,'optionresponse'); my $id = &Apache::response::start_response($parstack,$safeeval); return ''; } sub end_optionresponse { &Apache::response::end_response; + pop @Apache::lonxml::namespace; return ''; } +sub insert_optionresponse { + return ' + + + +'; +} + %Apache::response::foilgroup={}; sub start_foilgroup { %Apache::response::foilgroup={}; $Apache::optionresponse::conceptgroup=0; - &setrandomnumber(); - return ''; -} - -sub setrandomnumber { - my $rndseed=&Apache::lonnet::rndseed(); - $rndseed=unpack("%32i",$rndseed); - $rndseed=$rndseed - +&Apache::lonnet::numval($Apache::inputtags::part) - +&Apache::lonnet::numval($Apache::inputtags::response['-1']); - srand($rndseed); - &Apache::lonxml::debug("randseed $rndseed"); + &Apache::response::setrandomnumber(); return ''; } @@ -99,9 +99,9 @@ sub whichfoils { my ($max)=@_; my @names = @{ $Apache::response::foilgroup{'names'} }; my @whichopt =(); - while ((($#whichopt+1) < $max) && ($#names > -1)) { + while ((($#whichopt) < $max) && ($#names > -1)) { my $aopt=int rand $#names; - &Apache::lonxml::debug("From $#names elms, picking $aopt"); + &Apache::lonxml::debug("From $#whichopt $max $#names elms, picking $aopt"); $aopt=splice(@names,$aopt,1); &Apache::lonxml::debug("Picked $aopt"); push (@whichopt,$aopt); @@ -192,9 +192,22 @@ sub end_foil { } } } + if ($target eq 'edit') { + my $args =''; + if ( $#$parstack > 1 ) { $args=$$parstack['-2']; } + my $options=&Apache::run::run("{$args;".'return $options}',$safeeval); + if (!$options && $#$parstack > 2 ) { $args=$$parstack['-2']; } + my @opt; + #eval '@opt ='. + } return ''; } +sub insert_foil { + return ' + +'; +} 1; __END__