Diff for /loncom/homework/structuretags.pm between versions 1.289 and 1.292

version 1.289, 2005/04/22 17:15:33 version 1.292, 2005/06/03 18:17:57
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 365  sub store_aggregates { Line 372  sub store_aggregates {
         }          }
         if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) {          if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) {
             $aggregate{$symb."\0".$part."\0users"} = 1;              $aggregate{$symb."\0".$part."\0users"} = 1;
           } else {
               my $last_reset = &get_last_reset($symb,$cdomain,$cname,$part); 
               if ($last_reset) {
                   if (&get_num_tries($last_reset,$part) == 0) {
                       $aggregate{$symb."\0".$part."\0users"} = 1;
                   }
               }
         }          }
         $aggregate{$symb."\0".$part."\0attempts"} = 1;          $aggregate{$symb."\0".$part."\0attempts"} = 1;
     }      }
     if (%aggregate) {      if (keys (%aggregate) > 0) {
  &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,   &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,
       $cdomain,$cname);                               $cdomain,$cname);
       }
   }
   
   # ----------- Timestamp of last reset of aggregates
   sub get_last_reset {
       my ($symb,$cdomain,$cname,$part) =@_;
       my $last_reset = '';
       my %resethash = &Apache::lonnet::restore($symb,'nohist_resourcetracker',$cdomain,$cname);
       if ($resethash{'version'}) {
           for (my $version=$resethash{'version'};$version>=1;$version--) {
               if (exists($resethash{$version.':'.$part."\0".'prev_attempts'})) {
                   $last_reset = $resethash{$version.':timestamp'};
                   last;
               }
           }
     }      }
       return $last_reset;
 }  }
   
   # ----------- Provides number of tries since last reset of aggregates
   sub get_num_tries {
       my ($last_reset,$part) = @_;
       my $timestamp = '';
       my $num_tries = 0;
       if ($Apache::lonhomework::history{'version'}) {
           for (my $version=$Apache::lonhomework::history{'version'};$version>=1;$version--) {
               if (exists($Apache::lonhomework::history{$version.':resource.'.$part.'.solved'})) {
                   $timestamp = $Apache::lonhomework::history{$version.':timestamp'};
                   if ($timestamp > $last_reset) {
                       $num_tries ++;
                   } else {
                       last;
                   }
               }
           }
       }
       return $num_tries;
   }
   
   
 sub checkout_msg {  sub checkout_msg {
     my %lt=&Apache::lonlocal::texthash(       my %lt=&Apache::lonlocal::texthash( 
  'resource'=>'The resource needs to be checked out',   'resource'=>'The resource needs to be checked out',

Removed from v.1.289  
changed lines
  Added in v.1.292


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