diff --git a/C4/Context.pm b/C4/Context.pm index 07e81854bd..7ce91b6b35 100644 --- a/C4/Context.pm +++ b/C4/Context.pm @@ -97,6 +97,7 @@ use POSIX (); use DateTime::TimeZone; use Module::Load::Conditional qw(can_load); use Carp; +use DateTime::TimeZone; use C4::Boolean; use C4::Debug; @@ -981,6 +982,10 @@ sub timezone { my $self = shift; my $timezone = C4::Context->config('timezone') || $ENV{TZ} || 'local'; + if ( !DateTime::TimeZone->is_valid_name( $timezone ) ) { + warn "Invalid timezone in koha-conf.xml ($timezone)"; + $timezone = 'local'; + } return $timezone; } diff --git a/about.pl b/about.pl index 91292a5a79..7ea8acd073 100755 --- a/about.pl +++ b/about.pl @@ -23,6 +23,7 @@ use Modern::Perl; use CGI qw ( -utf8 ); +use DateTime::TimeZone; use List::MoreUtils qw/ any /; use LWP::Simple; use XML::Simple; @@ -61,10 +62,31 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +my $config_timezone = C4::Context->config('timezone'); +my $config_invalid = !DateTime::TimeZone->is_valid_name( $config_timezone ); +my $env_timezone = $ENV{TZ}; +my $env_invalid = !DateTime::TimeZone->is_valid_name( $env_timezone ); +my $actual_bad_tz_fallback = 0; + +if ( $config_timezone ne '' && + $config_invalid ) { + # Bad config + $actual_bad_tz_fallback = 1; +} +elsif ( $config_timezone eq '' && + $env_timezone ne '' && + $env_invalid ) { + # No config, but bad ENV{TZ} + $actual_bad_tz_fallback = 1; +} + my $time_zone = { - actual => C4::Context->timezone(), - config => C4::Context->config('timezone'), - environment => $ENV{TZ}, + actual => C4::Context->timezone(), + actual_bad_tz_fallback => $actual_bad_tz_fallback, + config => $config_timezone, + config_invalid => $config_invalid, + environment => $env_timezone, + environment_invalid => $env_invalid }; $template->param( 'time_zone' => $time_zone ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt index b47423385a..e109eb0e33 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt @@ -112,10 +112,24 @@