--- loncom/homework/response.pm 2001/08/07 12:24:53 1.40 +++ loncom/homework/response.pm 2001/08/07 23:17:36 1.41 @@ -13,7 +13,7 @@ sub BEGIN { } sub start_response { - my ($parstack,$safeeval)=@_; + my ($parstack,$safeeval)=@_; my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); if ($id eq '') { $id = $Apache::lonxml::curdepth; } push (@Apache::inputtags::response,$id); @@ -28,6 +28,19 @@ sub end_response { return ''; } +sub start_hintresponse { + my ($parstack,$safeeval)=@_; + my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); + if ($id eq '') { $id = $Apache::lonxml::curdepth; } + push (@Apache::inputtags::response,$id); + return $id; +} + +sub end_hintresponse { + pop @Apache::inputtags::response; + return ''; +} + # used by response to set the non-safe space random number generator to something # that is stable and unique based on the part number and response number sub setrandomnumber { @@ -47,30 +60,43 @@ sub setrandomnumber { sub meta_parameter_write { my ($name,$type,$default,$display)=@_; - return '' - ."\n"; + my $partref=$Apache::inputtags::part; + my $result='' + ."\n"; + return $result; } sub meta_package_write { my $name=shift; - return '' - ."\n"; + my $result = ''."\n"; + return $result; } sub meta_stores_write { my ($name,$type,$display)=@_; - return '' - ."\n"; + my $partref=$Apache::inputtags::part; + my $result = '\n"; } sub mandatory_part_meta { @@ -188,10 +214,15 @@ sub start_responseparam { if ($target eq 'grade' || $target eq 'web') { my $default= &Apache::lonxml::get_param('default',$parstack,$safeeval); my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval); - &Apache::lonxml::debug("looking for resource.$Apache::inputtags::part.$name"); - my $value = &Apache::lonnet::EXT("resource.$Apache::inputtags::part.$name"); + my $entry= 'resource.'.$Apache::inputtags::part; + if (defined($Apache::inputtags::response[-1])) { + $entry.='_'.$Apache::inputtags::response[-1]; + } + $entry.='.'.$name; + &Apache::lonxml::debug("looking for $entry"); + my $value = &Apache::lonnet::EXT("$entry"); &Apache::lonxml::debug("$name has value :$value: and default :$default:"); - if ($value eq '' || $value eq 'con_lost') { + if ($value eq '' || $value eq 'con_lost' || $value =~ /^error:/) { &Apache::lonxml::debug("defaulting"); $Apache::inputtags::params{$name}=$default; } else {