--- loncom/homework/hint.pm 2008/09/12 09:56:09 1.70 +++ loncom/homework/hint.pm 2008/11/20 15:19:15 1.74 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # implements the tags that control the hints # -# $Id: hint.pm,v 1.70 2008/09/12 09:56:09 raeburn Exp $ +# $Id: hint.pm,v 1.74 2008/11/20 15:19:15 jms Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,8 @@ # http://www.lon-capa.org/ # + + package Apache::hinttags; use strict; @@ -68,7 +70,7 @@ sub start_hintgroup { $result .= '\keephidden{'; } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_start($target,$token); - $result.=&Apache::edit::select_arg('Show hint even if problem Correct:','showoncorrect',[['no',&mt('No')],['yes',&mt('Yes')]],$token); + $result.=&Apache::edit::select_arg('Show hint even if problem Correct:','showoncorrect',['no','yes'],$token); $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); } elsif ($target eq 'modified') { my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'showoncorrect'); @@ -194,7 +196,7 @@ sub end_numericalhint { dclone($answer{$ans_name}); &Apache::caparesponse::setup_capa_response($args_ref,$response); my ($result,@msgs) = - &Apache::run::run("&caparesponse_check_list($$tagstack[-1])",$safeeval); + &Apache::run::run("&caparesponse_check_list()",$safeeval); &Apache::lonxml::debug("checking $ans_name $result with $response"); &Apache::lonxml::debug('msgs are '.join(':',@msgs)); my ($awards)=split(/:/,$result); @@ -422,13 +424,16 @@ sub end_stringhint { my $args_ref = &Apache::caparesponse::setup_capa_args($safeeval,$parstack, \@args,$response); + if ($$args_ref{'type'} eq '') { + $$args_ref{'type'} = 'ci'; + } &Apache::caparesponse::add_in_tag_answer($parstack,$safeeval); my (@final_awards,@final_msgs,@ans_names); my %answer = &Apache::caparesponse::get_answer(); foreach my $ans_name (keys(%answer)) { &Apache::lonxml::debug(" doing $ans_name with ".join(':',@{ $answer{$ans_name}{'answers'} })); ${$safeeval->varglob('LONCAPA::CAPAresponse_answer')}=dclone($answer{$ans_name}); - my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list($$tagstack[-1])",$safeeval); + my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list()",$safeeval); &Apache::lonxml::debug('msgs are'.join(':',@msgs)); my ($awards) = split(/:/,$result); my (@awards) = split(/,/,$awards); @@ -646,3 +651,59 @@ sub end_radiobuttonhint { } 1; __END__ + + +=head1 NAME + +Apache::hinttags + +=head1 SYNOPSIS + +This handler coordinates the delivery of hints to students working on LON-CAPA problems and assignments. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 SUBROUTINES + +=over + +=item start_hintgroup() + +=item end_hintgroup() + +=item start_numericalhint() + +=item end_numericalhint() + +=item start_formulahint() + +=item end_formulahint() + +=item start_mathhint() + +=item end_mathhint() + +=item start_customhint() + +=item end_customhint() + +=item start_stringhint() + +=item end_stringhint() + +=item start_hintpart() + +=item end_hintpart() + +=item start_optionhint() + +=item end_optionhint() + +=item start_radiobuttonhint() + +=item end_radiobuttonhint() + +=back + +=cut \ No newline at end of file