[LON-CAPA-cvs] cvs: loncom(version_2_8_X) /localize lonlocal.pm
raeburn
raeburn@source.lon-capa.org
Mon, 05 Jan 2009 16:55:04 -0000
raeburn Mon Jan 5 16:55:04 2009 EDT
Modified files: (Branch: version_2_8_X)
/loncom/localize lonlocal.pm
Log:
- Backport 1.53.
Index: loncom/localize/lonlocal.pm
diff -u loncom/localize/lonlocal.pm:1.50.2.1 loncom/localize/lonlocal.pm:1.50.2.2
--- loncom/localize/lonlocal.pm:1.50.2.1 Fri Dec 12 04:29:35 2008
+++ loncom/localize/lonlocal.pm Mon Jan 5 16:55:04 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Localization routines
#
-# $Id: lonlocal.pm,v 1.50.2.1 2008/12/12 04:29:35 raeburn Exp $
+# $Id: lonlocal.pm,v 1.50.2.2 2009/01/05 16:55:04 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -340,15 +340,24 @@
# ========================================================== Localize localtime
sub gettimezone {
- my $timezone;
- if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}) {
- $timezone = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'};
- } elsif ($Apache::lonnet::env{'request.course.id'} ne '') {
- my $cdom = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.domain'};
- if ($cdom ne '') {
- my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom);
- if ($domdefaults{'timezone_def'} ne '') {
- $timezone = $domdefaults{'timezone_def'};
+ my ($timezone) = @_;
+ if ($timezone ne '') {
+ if (!DateTime::TimeZone->is_valid_name($timezone)) {
+ $timezone = 'local';
+ }
+ return $timezone;
+ }
+ my $cid = $Apache::lonnet::env{'request.course.id'};
+ if ($cid ne '') {
+ if ($Apache::lonnet::env{'course.'.$cid.'.timezone'}) {
+ $timezone = $Apache::lonnet::env{'course.'.$cid.'.timezone'};
+ } else {
+ my $cdom = $Apache::lonnet::env{'course.'.$cid.'.domain'};
+ if ($cdom ne '') {
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom);
+ if ($domdefaults{'timezone_def'} ne '') {
+ $timezone = $domdefaults{'timezone_def'};
+ }
}
}
} elsif ($Apache::lonnet::env{'request.role.domain'} ne '') {
@@ -373,7 +382,7 @@
}
sub locallocaltime {
- my $thistime=shift;
+ my ($thistime,$timezone) = @_;
if (!defined($thistime) || $thistime eq '') {
return &mt('Never');
}
@@ -387,7 +396,7 @@
}
my $dt = DateTime->from_epoch(epoch => $thistime)
- ->set_time_zone(&gettimezone());
+ ->set_time_zone(&gettimezone($timezone));
if ((¤t_language=~/^en/) || (!$lh)) {
return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)");