X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FTemplates.pm;h=47bda045b25556f7cffe3d60e9f8f6e88e6145fe;hb=da49eeb8f9d03d8fcc8b840e752c28236b856183;hp=d150a16f1e6a14604d398a252384c89975a66e22;hpb=01875b565d7c04b3b00ba1986f824cae7d1fb2a9;p=koha_fer diff --git a/C4/Templates.pm b/C4/Templates.pm index d150a16f1e..47bda045b2 100644 --- a/C4/Templates.pm +++ b/C4/Templates.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Carp; use CGI; -use List::Util qw/first/; +use List::MoreUtils qw/any/; # Copyright 2009 Chris Cormack and The Koha Dev Team # @@ -53,12 +53,13 @@ sub new { else { $htdocs = C4::Context->config('intrahtdocs'); } - my ($theme, $lang)= themelanguage( $htdocs, $tmplbase, $interface, $query); my $template = Template->new( { EVAL_PERL => 1, ABSOLUTE => 1, - PLUGIN_BASE => 'Koha::Template::Plugin', + PLUGIN_BASE => 'Koha::Template::Plugin', + COMPILE_EXT => C4::Context->config('template_cache_dir')?'.ttc':'', + COMPILE_DIR => C4::Context->config('template_cache_dir')?C4::Context->config('template_cache_dir'):'',, INCLUDE_PATH => [ "$htdocs/$theme/$lang/includes", "$htdocs/$theme/en/includes" @@ -299,7 +300,7 @@ sub setlanguagecookie { my $cookie = $query->cookie( -name => 'KohaOpacLanguage', -value => $language, - -expires => '' + -expires => '+3y' ); print $query->redirect( -uri => $uri, @@ -312,9 +313,9 @@ sub getlanguage { my ($query, $interface) = @_; # Select a language based on cookie, syspref available languages & browser - my $is_intranet = $interface eq 'intranet'; - my @languages = split(",", C4::Context->preference( - $is_intranet ? 'language' : 'opaclanguages')); + my $preference_to_check = + $interface eq 'intranet' ? 'language' : 'opaclanguages'; + my @languages = split /,/, C4::Context->preference($preference_to_check); my $lang; @@ -325,20 +326,18 @@ sub getlanguage { } # HTTP_ACCEPT_LANGUAGE - unless ($lang) { - my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE }; - $lang = accept_language( $http_accept_language, - getTranslatedLanguages($interface,'prog') ); + if ( !$lang && $ENV{HTTP_ACCEPT_LANGUAGE} ) { + $lang = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE}, + getTranslatedLanguages( $interface, 'prog' ) ); } # Ignore a lang not selected in sysprefs - $lang = undef unless first { $_ eq $lang } @languages; + if ( $lang && any { $_ eq $lang } @languages ) { + return $lang; + } # Fall back to English if necessary - $lang = 'en' unless $lang; - - return $lang; + return 'en'; } 1; -