package Apache::hinttags; use strict; use Apache::lonnet; sub BEGIN { &Apache::lonxml::register('Apache::hinttags',('hintgroup','hintpart')); } sub start_hintgroup { my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; my $id=$Apache::inputtags::part; my $numtries=$Apache::lonhomework::history{"resource.$id.tries"}; if ( $numtries eq '') { $numtries = 0; } my $hinttries=&Apache::lonnet::EXT("resource.$id.hinttries"); if ( $hinttries eq '') { $hinttries = 1; } &Apache::lonxml::debug("found :$id:$numtries:$hinttries:"); if ( $numtries < $hinttries ) { &Apache::lonxml::get_all_text("/hintgroup",$$parser[$#$parser]); } return ''; } sub end_hintgroup { } # a part shows if it is on, if no specific parts are on, then default shows sub start_hintpart { return ''; my ($target,$token,$parstack,$parser,$safeeval,$style)=@_; my $show ='0'; if ($target ne 'meta' && $target ne 'grade') { my $args =''; if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } my $on = &Apache::run::run("{$args;".'return $on}',$safeeval); if ( $on eq 'default') { } else { my (%results) = &Apache::run::run("{$args; return ".'\%'.$on,$safeeval); my $key; foreach $key (keys %results) { &Apache::lonxml::debug("Got $key"); } } if (!$show) { &Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]); } } else { &Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]); } return ''; } sub end_hintpart { } 1; __END__