--- loncom/homework/response.pm 2001/06/29 18:53:50 1.29 +++ loncom/homework/response.pm 2001/08/04 20:01:36 1.34 @@ -2,12 +2,14 @@ # various response type definitons response definition # 11/23,11/24,11/28 Gerd Kortemeyer +# Guy Albertelli +# 08/04 Gerd Kortemeyer package Apache::response; use strict; sub BEGIN { - &Apache::lonxml::register('Apache::response',('responseparam','caparesponse','numericalresponse','radiobuttonresponse','optionresponse','imageresponse','essayresponse')); + &Apache::lonxml::register('Apache::response',('responseparam','caparesponse','numericalresponse','stringresponse','radiobuttonresponse','optionresponse','imageresponse','essayresponse')); } sub start_response { @@ -51,6 +53,13 @@ sub meta_parameter_write { ."\n"; } +sub meta_package_write { + my $name=shift; + return '' + ."\n"; +} + sub meta_stores_write { my ($name,$type,$display)=@_; return '\nsimple caparesponse\n"; + return &Apache::caparesponse::start_caparesponse($target,$token,$tagstack,$parstack,$parser,$safeeval,$style); } -sub start_caparesponse { +sub start_stringresponse { + require Apache::caparesponse; + import Apache::caparesponse; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + return &Apache::caparesponse::start_stringresponse($target,$token,$tagstack,$parstack,$parser,$safeeval,$style); +} + +sub start_numericalresponse { require Apache::caparesponse; import Apache::caparesponse; my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; -# print "\n
\nsimple caparesponse\n"; - return &Apache::caparesponse::start_caparesponse($target,$token,$tagstack,$parstack,$parser,$safeeval,$style); + if ($target eq 'meta') { + return &meta_package_write('numericalresponse'); + } else { + return &Apache::caparesponse::start_numericalresponse + ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style); + } } sub start_radiobuttonresponse { @@ -174,7 +219,10 @@ sub start_responseparam { my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval, 'name','type','description', 'default'); - if ($constructtag) { $result = &Apache::edit::rebuild_tag($token);} + if ($constructtag) { + $result = &Apache::edit::rebuild_tag($token); + $result.=&Apache::edit::handle_insert(); + } return $result; } else {