# The LearningOnline Network with CAPA # mutliple choice style responses # 11/23,11/24,11/28 Gerd Kortemeyer package Apache::radiobuttonresponse; use strict; sub BEGIN { &Apache::lonxml::register('Apache::radiobuttonresponse',('radiobuttonresponse','foilgroup','foil')); } sub start_radiobuttonresponse { } sub end_radiobuttonresponse { } %Apache::response::foilgroup={}; sub start_foilgroup { %Apache::response::foilgroup={}; } sub end_foilgroup { my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; my $name; my $result; foreach $name ($Apache::response::foilgroup{'names'}) { $result.="
$name is $Apache::response::foilgroup{$name.'.value'} "; } return $result; } sub start_foil { $Apache::lonxml::redirection++; } sub end_foil { my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; my $args =''; if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } my $name = &Apache::run::run("{$args;".'return $name}',$safeeval); push @{ $Apache::response::foilgroup{'names'} }, $name; my $value = &Apache::run::run("{$args;".'return $value}',$safeeval); $Apache::response::foilgroup{"$name.value"} = $value; $Apache::response::foilgroup{"$name.text"} = $Apache::lonxml::outputstack; $Apache::lonxml::redirection--; return ''; } 1; __END__