--- loncom/homework/hint.pm 2003/02/07 22:03:21 1.34 +++ loncom/homework/hint.pm 2003/04/07 23:02:06 1.38 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # implements the tags that control the hints # -# $Id: hint.pm,v 1.34 2003/02/07 22:03:21 albertel Exp $ +# $Id: hint.pm,v 1.38 2003/04/07 23:02:06 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,10 +50,14 @@ sub start_hintgroup { my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries"); if ( $hinttries eq '') { $hinttries = 1; } &Apache::lonxml::debug("found :$id:$numtries:$hinttries:"); - if ( $numtries < $hinttries ) { - $skiptoend='1'; + if ($Apache::lonhomework::type ne 'exam') { + if ( $numtries < $hinttries ) { + $skiptoend='1'; + } else { + $result='
'; + } } else { - if ($target eq 'web') {$result='
';} + &Apache::lonxml::startredirection; } if ($skiptoend) { &Apache::lonxml::get_all_text("/hintgroup",$parser); @@ -76,8 +80,12 @@ sub end_hintgroup { my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries"); if ( $hinttries eq '') { $hinttries = 1; } &Apache::lonxml::debug("found :$id:$numtries:$hinttries:"); - if ( $numtries >= $hinttries ) { - $result='
'; + if ($Apache::lonhomework::type ne 'exam') { + if ( $numtries >= $hinttries ) { + $result='
'; + } + } else { + &Apache::lonxml::endredirection; } } elsif ($target eq 'edit') { $result.=&Apache::edit::end_table(); @@ -98,8 +106,10 @@ sub start_numericalhint { $result.=&Apache::edit::text_arg('Name:','name',$token); $result.=&Apache::edit::text_arg('Answer:','answer',$token); if ($token->[1] eq 'numericalhint') { - $result.=&Apache::edit::text_arg('Unit:','unit',$token,5); - $result.=&Apache::edit::text_arg('Format:','format',$token,4); + $result.=&Apache::edit::text_arg('Unit:','unit',$token,5). + &Apache::loncommon::help_open_topic('Physical_Units'); + $result.=&Apache::edit::text_arg('Format:','format',$token,4). + &Apache::loncommon::help_open_topic('Numerical_Response_Format'); } elsif ($token->[1] eq 'stringhint') { $result.=&Apache::edit::select_arg('Type:','type',['cs','ci','mc'],$token); } elsif ($token->[1] eq 'formulahint') { @@ -162,7 +172,7 @@ sub end_numericalhint { if ($ad eq 'EXACT_ANS' || $ad eq 'APPROX_ANS') { push (@Apache::hint::which,$name); } $result=''; } elsif ($target eq 'meta') { - $result=&Apache::response::meta_package_write('numericalhint'); + $result=&Apache::response::meta_package_write($token->[1]); } elsif ($target eq 'edit') { $result.=''.&Apache::edit::end_table; } @@ -171,33 +181,19 @@ sub end_numericalhint { } sub start_stringhint { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - my $result; - if ($target eq 'meta') { - $result=&Apache::response::meta_package_write('stringhint'); - } else { - $result.=&start_numericalhint(@_); - } - return $result; + return &start_numericalhint(@_); } sub end_stringhint { - return end_numericalhint(@_); + return &end_numericalhint(@_); } sub start_formulahint { - my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - my $result; - if ($target eq 'meta') { - $result=&Apache::response::meta_package_write('formulahint'); - } else { - $result.=&start_numericalhint(@_); - } - return $result; + return &start_numericalhint(@_); } sub end_formulahint { - return end_numericalhint(@_); + return end_numericalhint(@_); } # a part shows if it is on, if no specific parts are on, then default shows