version 1.284, 2005/04/07 06:56:22
|
version 1.291, 2005/04/29 21:22:33
|
Line 68 sub end_tex {
|
Line 68 sub end_tex {
|
return ''; |
return ''; |
} |
} |
|
|
|
sub body_tag_start { |
|
my ($target,$background,$bgcolor)=@_; |
|
my $body_tag_start='<body onload="'.&Apache::lonmenu::loadevents().'" '. |
|
'onunload="'.&Apache::lonmenu::unloadevents().'" '; |
|
if ($env{'browser.imagesuppress'} eq 'on') { $background=''; } |
|
if ($background) { |
|
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
|
$background; |
|
$body_tag_start.='background="'.$background.'" '; |
|
} else { |
|
if (($bgcolor) && ($env{'browser.blackwhite'} ne 'on')) { |
|
$body_tag_start.='bgcolor="'.$bgcolor.'" '; |
|
} else { |
|
$body_tag_start.='bgcolor="#ffffff"'; |
|
} |
|
} |
|
if ($env{'browser.fontenhance'} eq 'on') { |
|
$body_tag_start.=' style="font-size: x-large;" '; |
|
} |
|
$body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1); |
|
if ($env{'environment.texengine'} eq 'jsMath') { |
|
$body_tag_start.='<script type="text/javascript"> |
|
function NoFontMessage () {} |
|
</script>'."\n". |
|
'<script src="/adm/jsMath/jsMath.js"></script>'."\n"; |
|
} |
|
return $body_tag_start; |
|
} |
|
|
sub page_start { |
sub page_start { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my %found; |
my %found; |
Line 93 sub page_start {
|
Line 122 sub page_start {
|
$body_tag_start=&Apache::loncommon::bodytag(); |
$body_tag_start=&Apache::loncommon::bodytag(); |
$body_tag_start.=&Apache::lonxml::message_location(); |
$body_tag_start.=&Apache::lonxml::message_location(); |
} elsif (!defined($found{'body'})) { |
} elsif (!defined($found{'body'})) { |
$body_tag_start='<body onload="'.&Apache::lonmenu::loadevents().'" '. |
|
'onunload="'.&Apache::lonmenu::unloadevents().'" '; |
|
my $background=&Apache::lonxml::get_param('background',$parstack, |
my $background=&Apache::lonxml::get_param('background',$parstack, |
$safeeval); |
$safeeval); |
if ($env{'browser.imagesuppress'} eq 'on') { $background=''; } |
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
if ($background) { |
$safeeval); |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$body_tag_start=&body_tag_start($background,$bgcolor); |
$background; |
if ( ($target eq 'web' || $target eq 'webgrade') |
$body_tag_start.='background="'.$background.'" '; |
&& $env{'request.state'} ne 'construct') { |
} else { |
|
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
|
$safeeval); |
|
if (($bgcolor) && ($env{'browser.blackwhite'} ne 'on')) { |
|
$body_tag_start.='bgcolor="'.$bgcolor.'" '; |
|
} else { |
|
$body_tag_start.='bgcolor="#ffffff"'; |
|
} |
|
} |
|
if ($env{'browser.fontenhance'} eq 'on') { |
|
$body_tag_start.=' style="font-size: x-large;" '; |
|
} |
|
$body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1); |
|
if ($env{'environment.texengine'} eq 'jsMath') { |
|
$body_tag_start.='<script type="text/javascript"> |
|
function NoFontMessage () {} |
|
</script>'."\n". |
|
'<script src="/adm/jsMath/jsMath.js"></script>'."\n"; |
|
} |
|
if ($target eq 'web' && $env{'request.state'} ne 'construct') { |
|
my ($symb,undef,undef,undef,$publicuser)= |
my ($symb,undef,undef,undef,$publicuser)= |
&Apache::lonxml::whichuser(); |
&Apache::lonxml::whichuser(); |
if ($symb eq '' && !$publicuser) { |
if ($symb eq '' && !$publicuser) { |
Line 317 sub initialize_storage {
|
Line 324 sub initialize_storage {
|
# Stores away the result has to a student's environment |
# Stores away the result has to a student's environment |
# checks form.grade_ for specific values, other wises stores |
# checks form.grade_ for specific values, other wises stores |
# to the running users environment |
# to the running users environment |
|
# Will increment totals for attempts, students, and corrects |
|
# if running user has student role. |
sub finalize_storage { |
sub finalize_storage { |
my $result; |
my $result; |
my ($temp) = keys %Apache::lonhomework::results; |
if (%Apache::lonhomework::results) { |
if ( $temp ne '' ) { |
|
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
if ($env{'request.state'} eq 'construct' || $symb eq '') { |
if ($env{'request.state'} eq 'construct' || $symb eq '') { |
$Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'}; |
$Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'}; |
Line 331 sub finalize_storage {
|
Line 339 sub finalize_storage {
|
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
$symb,$courseid,$domain,$name); |
$symb,$courseid,$domain,$name); |
&Apache::lonxml::debug('Store return message:'.$result); |
&Apache::lonxml::debug('Store return message:'.$result); |
|
if ($env{'request.role'} =~/^st/) { |
|
&store_aggregates($symb,$courseid); |
|
} |
} |
} |
} |
} |
return $result; |
return $result; |
} |
} |
|
use Data::Dumper; |
|
|
|
# -------------------------------------------------------------store_aggregates |
|
# Sends hash of values to be incremented in nohist_resourcetracker.db |
|
# for the course. Increments total number of attempts, unique students |
|
# and corrects for each part for an instance of a problem, as appropriate. |
|
sub store_aggregates { |
|
my ($symb,$courseid) = @_; |
|
my %aggregate; |
|
my @parts; |
|
my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
foreach my $key (keys(%Apache::lonhomework::results)) { |
|
if ($key =~ /resource\.([^\.]+)\.tries/) { |
|
push(@parts, $1); |
|
} |
|
} |
|
foreach my $part (@parts) { |
|
if ($Apache::lonhomework::results{'resource.'.$part.'.award'} |
|
eq 'APPROX_ANS' || |
|
$Apache::lonhomework::results{'resource.'.$part.'.award'} |
|
eq 'EXACT_ANS') { |
|
$aggregate{$symb."\0".$part."\0correct"} = 1; |
|
} |
|
if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) { |
|
$aggregate{$symb."\0".$part."\0users"} = 1; |
|
} |
|
$aggregate{$symb."\0".$part."\0attempts"} = 1; |
|
} |
|
if (%aggregate) { |
|
&Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate, |
|
$cdomain,$cname); |
|
|
|
} |
|
} |
|
|
sub checkout_msg { |
sub checkout_msg { |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |