X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FTemplates.pm;h=d6e3ce46e48c7cb1e3601575f5fa9e16bf67c87a;hb=6eb021ab0e113e2b6b897c89475f1eadc7a2c15b;hp=7585727550892c9c8a1b9c869d63658e22f696ad;hpb=236747534115e35975de8d51554e6e87f4248462;p=koha_gimpoz diff --git a/C4/Templates.pm b/C4/Templates.pm index 7585727550..d6e3ce46e4 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,11 +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', + 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" @@ -311,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; @@ -324,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; -