--- loncom/homework/response.pm 2007/04/17 23:25:09 1.162 +++ loncom/homework/response.pm 2007/05/23 22:36:21 1.167 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.162 2007/04/17 23:25:09 albertel Exp $ +# $Id: response.pm,v 1.167 2007/05/23 22:36:21 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -391,7 +391,6 @@ sub start_customresponse { $safeeval,'answerdisplay'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result.=&Apache::edit::handle_insert(); } } elsif ($target eq 'answer' || $target eq 'grade') { &Apache::response::reset_params(); @@ -447,6 +446,9 @@ sub end_customresponse { $result .= &Apache::response::answer_part('customresponse',$answer); $result .= &Apache::response::answer_footer('customresponse'); } + if ($target eq 'web') { + &setup_prior_tries_hash(\&format_prior_response_math); + } if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::increment_counter(&Apache::response::repetition()); @@ -459,6 +461,11 @@ sub end_customresponse { return $result; } +sub format_prior_response_custom { + my ($mode,$answer) =@_; + return ''. + &HTML::Entities::encode($answer,'"<>&').''; +} sub start_mathresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -491,7 +498,6 @@ sub start_mathresponse { $safeeval,'answerdisplay','cas','args'); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result.=&Apache::edit::handle_insert(); } } elsif ($target eq 'answer' || $target eq 'grade') { &Apache::response::reset_params(); @@ -536,6 +542,10 @@ sub end_mathresponse { } } } + if ($target eq 'web') { + &setup_prior_tries_hash(\&format_prior_response_math); + } + pop(@Apache::lonxml::namespace); pop(@Apache::response::custom_answer); pop(@Apache::response::custom_answer_type); @@ -544,6 +554,12 @@ sub end_mathresponse { return $result; } +sub format_prior_response_math { + my ($mode,$answer) =@_; + return ''. + &HTML::Entities::encode($answer,'"<>&').''; +} + sub implicit_multiplication { my ($expression)=@_; # Escape scientific notation, so 3e8 does not become 3*e*8 @@ -659,7 +675,6 @@ sub start_responseparam { } if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); - $result.=&Apache::edit::handle_insert(); } } elsif ($target eq 'grade' || $target eq 'answer' || $target eq 'web' || $target eq 'tex' || $target eq 'analyze' ) { @@ -1004,7 +1019,17 @@ sub pick_foil_for_concept { $Apache::response::conceptgroup{'names'}; } - +#------------------------------------------------------------ +# +# Get a parameter associated with a problem. +# Parameters: +# $id - the id of the paramater, either a part id, +# or a partid and responspe id joined by _ +# $name - Name of the parameter to fetch +# $default - Default value for the paramter. +# +# +# sub get_response_param { my ($id,$name,$default)=@_; my $parameter;