Diff for /loncom/homework/hint.pm between versions 1.39 and 1.45

version 1.39, 2003/04/08 02:21:13 version 1.45, 2003/06/24 20:41:56
Line 50  sub start_hintgroup { Line 50  sub start_hintgroup {
  my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries");   my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries");
  if ( $hinttries eq '') { $hinttries = 1; }   if ( $hinttries eq '') { $hinttries = 1; }
  &Apache::lonxml::debug("found :$id:$numtries:$hinttries:");   &Apache::lonxml::debug("found :$id:$numtries:$hinttries:");
  if ($Apache::lonhomework::type ne 'exam') {   if ( $numtries < $hinttries ) {
     if ( $numtries < $hinttries ) {  
  $skiptoend='1';  
     } else {  
  $result='<table bgcolor="#dddddd"><tr><td>';  
     }  
  } else {  
     &Apache::lonxml::startredirection;  
  }  
  if ($skiptoend) {  
     &Apache::lonxml::get_all_text("/hintgroup",$parser);      &Apache::lonxml::get_all_text("/hintgroup",$parser);
  }   }
    &Apache::lonxml::startredirection;
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $result .= '\keephidden{';   $result .= '\keephidden{';
     }      }
Line 80  sub end_hintgroup { Line 72  sub end_hintgroup {
  my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries");   my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries");
  if ( $hinttries eq '') { $hinttries = 1; }   if ( $hinttries eq '') { $hinttries = 1; }
  &Apache::lonxml::debug("found :$id:$numtries:$hinttries:");   &Apache::lonxml::debug("found :$id:$numtries:$hinttries:");
  if ($Apache::lonhomework::type ne 'exam') {   my $hinttext=&Apache::lonxml::endredirection;
     if ( $numtries >= $hinttries ) {   if ($Apache::lonhomework::type ne 'exam' &&
  $result='</td></tr></table>';      $numtries >= $hinttries && $hinttext =~/\S/) {
     }      $result='<table bgcolor="#dddddd"><tr><td>'.
  } else {   $hinttext.'</td></tr></table>';
     &Apache::lonxml::endredirection;  
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::end_table();   $result.=&Apache::edit::end_table();
Line 111  sub start_numericalhint { Line 102  sub start_numericalhint {
     $result.=&Apache::edit::text_arg('Format:','format',$token,4).      $result.=&Apache::edit::text_arg('Format:','format',$token,4).
  &Apache::loncommon::help_open_topic('Numerical_Response_Format');   &Apache::loncommon::help_open_topic('Numerical_Response_Format');
  } elsif ($token->[1] eq 'stringhint') {   } elsif ($token->[1] eq 'stringhint') {
     $result.=&Apache::edit::select_arg('Type:','type',['cs','ci','mc'],$token);      $result.=&Apache::edit::select_arg('Type:','type',
       [['cs','Case Sensitive'],['ci','Case Insensitive'],
        ['mc','Case Insensitive, Any Order']],$token);
  } elsif ($token->[1] eq 'formulahint') {   } elsif ($token->[1] eq 'formulahint') {
     $result.=&Apache::edit::text_arg('Sample Points:','samples',$token,40);      $result.=&Apache::edit::text_arg('Sample Points:','samples',$token,40);
  }   }
Line 167  sub end_numericalhint { Line 160  sub end_numericalhint {
     $expression.= ';my $'. #'      $expression.= ';my $'. #'
  $key.'="'.$Apache::inputtags::params{$key}.'"';   $key.'="'.$Apache::inputtags::params{$key}.'"';
  }   }
    if ($$tagstack[-1] eq 'formulahint') {
       $expression.=';my $type="fml";';
    } elsif ($$tagstack[-1] eq 'numericalhint') {
       $expression.=';my $type="float";';
    }
  $expression.="');";   $expression.="');";
    my @answer=&Apache::lonxml::get_param_var('answer',$parstack,$safeeval);
    &Apache::lonxml::debug('answer is'.join(':',@answer));
    @{$safeeval->varglob('CAPARESPONSE_CHECK_LIST_answer')}=@answer;
   
  $result = &Apache::run::run($expression,$safeeval);   $result = &Apache::run::run($expression,$safeeval);
  &Apache::lonxml::debug("$expression:result:$result:$Apache::lonxml::curdepth");   &Apache::lonxml::debug("$expression:result:$result:$Apache::lonxml::curdepth");
  my ($awards) = split /:/ , $result;   my ($awards) = split /:/ , $result;
Line 357  sub end_radiobuttonhint { Line 359  sub end_radiobuttonhint {
  my $response = $Apache::lonhomework::history{   my $response = $Apache::lonhomework::history{
     "resource.$part_id.submission"};      "resource.$part_id.submission"};
  ($response)=&Apache::lonnet::str2hash($response);   ($response)=&Apache::lonnet::str2hash($response);
  if ($answer[0] eq 'foil' && $response eq $answer[1]) {   &Apache::lonxml::debug("response is $response");
     push (@Apache::hint::which,$name);  
    if ($answer[0] eq 'foil') {
       shift(@answer);
       foreach my $answer (@answer) {
    if ($response eq $answer) {
       push (@Apache::hint::which,$name);
       last;
    }
       }
  } elsif ($answer[0] eq 'concept') {   } elsif ($answer[0] eq 'concept') {
     if (ref($Apache::hint::radiobutton{"$part_id.concept.".$answer[1]})) {      shift(@answer);
  my @names=@{ $Apache::hint::radiobutton{"$part_id.concept.".$answer[1]} };      foreach my $answer (@answer) {
  if (grep(/^\Q$response\E$/,@names)) {   if (ref($Apache::hint::radiobutton{"$part_id.concept.".$answer})) {
     push(@Apache::hint::which,$name);      my @names=@{ $Apache::hint::radiobutton{"$part_id.concept.".$answer} };
       if (grep(/^\Q$response\E$/,@names)) {
    push(@Apache::hint::which,$name);
    last;
       }
  }   }
     }      }
  }   }

Removed from v.1.39  
changed lines
  Added in v.1.45


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>