--- loncom/localize/lonlocal.pm 2008/09/20 01:57:50 1.48.2.1 +++ loncom/localize/lonlocal.pm 2008/09/19 12:31:06 1.50 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Localization routines # -# $Id: lonlocal.pm,v 1.48.2.1 2008/09/20 01:57:50 raeburn Exp $ +# $Id: lonlocal.pm,v 1.50 2008/09/19 12:31:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -166,6 +166,7 @@ use locale; use POSIX qw(locale_h strftime); use DateTime(); use DateTime::TimeZone; +use DateTime::Locale; require Exporter; @@ -378,6 +379,38 @@ sub locallocaltime { } } +sub getdatelocale { + my ($datelocale,$locale_obj); + if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.datelocale'}) { + $datelocale = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.datelocale'}; + } 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{'datelocale_def'} ne '') { + $datelocale = $domdefaults{'datelocale_def'}; + } + } + } elsif ($Apache::lonnet::env{'user.domain'} ne '') { + my %udomdefaults = &Apache::lonnet::get_domain_defaults($Apache::lonnet::env{'user.domain'}); + if ($udomdefaults{'datelocale_def'} ne '') { + $datelocale = $udomdefaults{'datelocale_def'}; + } + } + if ($datelocale ne '') { + eval { + $locale_obj = DateTime::Locale->load($datelocale); + }; + if (!$@) { + if ($locale_obj->id() eq $datelocale) { + return $locale_obj; + } + } + } + return $locale_obj; +} + + # ==================== Normalize string (reduce fragility in the lexicon files) # This normalizes a string to reduce fragility in the lexicon files of