Diff for /loncom/localize/lonlocal.pm between versions 1.57 and 1.60.2.1

version 1.57, 2009/04/16 15:51:42 version 1.60.2.1, 2009/10/02 16:59:29
Line 242  sub current_language { Line 242  sub current_language {
 }  }
   
 sub preferred_languages {  sub preferred_languages {
       my $defdom = &Apache::lonnet::default_login_domain();
       foreach my $domtype ($Apache::lonnet::env{'user.domain'},$Apache::lonnet::env{'request.role.domain'},$defdom) {
           next if ($domtype eq '');
           if ($domtype eq 'gci') {
               return ('gci');
           } elsif ($domtype eq 'gcitest') {
               return ('gct');
           } else {
               return ('gci');
           }
       }
     my @languages=();      my @languages=();
     if (($Apache::lonnet::env{'request.role.adv'}) && ($Apache::lonnet::env{'form.languages'})) {      if (($Apache::lonnet::env{'request.role.adv'}) && ($Apache::lonnet::env{'form.languages'})) {
         @languages=(@languages,split(/\s*(\,|\;|\:)\s*/,$Apache::lonnet::env{'form.languages'}));          @languages=(@languages,split(/\s*(\,|\;|\:)\s*/,$Apache::lonnet::env{'form.languages'}));
Line 262  sub preferred_languages { Line 273  sub preferred_languages {
         push(@languages,@browser);          push(@languages,@browser);
     }      }
   
     foreach my $domtype ($Apache::lonnet::env{'user.domain'},$Apache::lonnet::env{'request.role.domain'},      foreach my $domtype ($Apache::lonnet::env{'user.domain'},$Apache::lonnet::env{'request.role.domain'},$defdom) {
                          $Apache::lonnet::perlvar{'lonDefDomain'}) {  
         if ($domtype ne '') {          if ($domtype ne '') {
             my %domdefs = &Apache::lonnet::get_domain_defaults($domtype);              my %domdefs = &Apache::lonnet::get_domain_defaults($domtype);
             if ($domdefs{'lang_def'} ne '') {              if ($domdefs{'lang_def'} ne '') {
Line 395  sub gettimezone { Line 405  sub gettimezone {
   
 sub locallocaltime {  sub locallocaltime {
     my ($thistime,$timezone) = @_;      my ($thistime,$timezone) = @_;
   
     if (!defined($thistime) || $thistime eq '') {      if (!defined($thistime) || $thistime eq '') {
  return &mt('Never');   return &mt('Never');
     }      }
Line 408  sub locallocaltime { Line 419  sub locallocaltime {
     }      }
   
     my $dt = DateTime->from_epoch(epoch => $thistime)      my $dt = DateTime->from_epoch(epoch => $thistime)
                      ->set_time_zone(&gettimezone($timezone));                       ->set_time_zone(gettimezone($timezone));
   
       # TimeZone tries to determine the 'local' timezone from $ENV{TZ} if this
       # fails it searches through various system files. Under certain
       # circumstances this is an extremly expensive operation.
       # So after the first run we store the timezone in $ENV{TZ} to significantly
       # speed up future lookups. 
       $ENV{TZ} = $dt->time_zone()->name() 
           if (! $ENV{TZ} && gettimezone($timezone) eq 'local');
   
     if ((&current_language=~/^en/) || (!$lh)) {      if ((&current_language=~/^en/) || (!$lh)) {
   
  return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)");   return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)");

Removed from v.1.57  
changed lines
  Added in v.1.60.2.1


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