--- loncom/xml/lonxml.pm 2007/10/22 09:27:50 1.466 +++ loncom/xml/lonxml.pm 2007/11/13 22:16:10 1.469 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.466 2007/10/22 09:27:50 foxr Exp $ +# $Id: lonxml.pm,v 1.469 2007/11/13 22:16:10 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -377,7 +377,7 @@ sub xmlparse { $finaloutput .= join('',@script_var_displays); undef(@script_var_displays); } - + &init_state(); if ($env{'form.return_only_error_and_warning_counts'}) { return "$errorcount:$warningcount"; } @@ -659,6 +659,7 @@ sub setup_globals { &init_counter(); &clear_bubble_lines_for_part(); &init_state(); + &set_state('target',$target); @Apache::lonxml::pwd=(); @Apache::lonxml::extlinks=(); @script_var_displays=(); @@ -1066,14 +1067,14 @@ Increments the internal counter environm Optional Arguments: $increment - amount to increment by (defaults to 1) Also 1 if the value is negative or zero. - $response_id - The id of the response to record. This - indicates whicn part of which problem is being - counted. + $part_response - A concatenation of the part and response id + identifying exactly what is being 'answered'. + =cut sub increment_counter { - my ($increment, $response_id) = @_; + my ($increment, $part_response) = @_; if (!defined($increment) || $increment le 0) { $increment = 1; } @@ -1082,12 +1083,12 @@ sub increment_counter { # If the caller supplied the response_id parameter, # Maintain its counter.. creating if necessary. - if(defined($response_id)) { - if (!defined($Apache::lonxml::counters_per_part{$response_id})) { - $Apache::lonxml::counters_per_part{$response_id} = 0; + if(defined($part_response)) { + if (!defined($Apache::lonxml::counters_per_part{$part_response})) { + $Apache::lonxml::counters_per_part{$part_response} = 0; } - $Apache::lonxml::counters_per_part{$response_id} += $increment; - my $new_value = $Apache::lonxml::counters_per_part{$response_id}; + $Apache::lonxml::counters_per_part{$part_response} += $increment; + my $new_value = $Apache::lonxml::counters_per_part{$part_response}; } $Apache::lonxml::counter_changed=1; @@ -1148,20 +1149,20 @@ sub store_counter { =pod -=item bubble_lines_for_part(response_id) +=item bubble_lines_for_part(part_response) Returns the number of lines required to get a response for -$response_id (this is just $Apache::lonxml::counters_per_part{$response_id} +$part_response (this is just $Apache::lonxml::counters_per_part{$part_response} =cut sub bubble_lines_for_part { - my ($response_id) = @_; + my ($part_response) = @_; - if (!defined($Apache::lonxml::counters_per_part{$response_id})) { + if (!defined($Apache::lonxml::counters_per_part{$part_response})) { return 0; } else { - return $Apache::lonxml::counters_per_part{$response_id}; + return $Apache::lonxml::counters_per_part{$part_response}; } } @@ -1182,7 +1183,7 @@ sub clear_bubble_lines_for_part { =pod -=item set_bubble_lines(response_id, value) +=item set_bubble_lines(part_response, value) If there is a problem part, that for whatever reason requires bubble lines that are not @@ -1192,9 +1193,9 @@ analysis to set its hash value explicitl =cut sub set_bubble_lines { - my ($response_id, $value) = @_; + my ($part_response, $value) = @_; - $Apache::lonxml::counters_per_part{$response_id} = $value; + $Apache::lonxml::counters_per_part{$part_response} = $value; } =pod