X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FTemplates.pm;h=d150a16f1e6a14604d398a252384c89975a66e22;hb=0b0212cae3497f7746eb58a5397453c6e0173ba0;hp=73d94c239952262f71153197cb9f4baa9269996d;hpb=ed9e0bf41e59a45a4f6d376ec71e5c03c35ab3cc;p=koha_fer diff --git a/C4/Templates.pm b/C4/Templates.pm index 73d94c2399..d150a16f1e 100644 --- a/C4/Templates.pm +++ b/C4/Templates.pm @@ -58,6 +58,7 @@ sub new { my $template = Template->new( { EVAL_PERL => 1, ABSOLUTE => 1, + PLUGIN_BASE => 'Koha::Template::Plugin', INCLUDE_PATH => [ "$htdocs/$theme/$lang/includes", "$htdocs/$theme/en/includes" @@ -273,21 +274,10 @@ sub themelanguage { ($query) or warn "no query in themelanguage"; # 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 $lang; - $lang = getlanguagecookie($query); - unless ($lang) { - my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE }; - $lang = accept_language( $http_accept_language, - getTranslatedLanguages($interface,'prog') ); - } - # Ignore a lang not selected in sysprefs - $lang = undef unless first { $_ eq $lang } @languages; - # Fall back to English if necessary - $lang = 'en' unless $lang; + my $lang = getlanguage($query, $interface); + # Select theme + my $is_intranet = $interface eq 'intranet'; my @themes = split(" ", C4::Context->preference( $is_intranet ? "template" : "opacthemes" )); push @themes, 'prog'; @@ -317,16 +307,36 @@ sub setlanguagecookie { ); } -sub getlanguagecookie { - my ($query) = @_; + +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 $lang; - if ($query->cookie('KohaOpacLanguage')){ - $lang = $query->cookie('KohaOpacLanguage') ; - }else{ - $lang = $ENV{HTTP_ACCEPT_LANGUAGE}; - + + # cookie + if ( $query->cookie('KohaOpacLanguage') ) { + $lang = $query->cookie('KohaOpacLanguage'); + $lang =~ s/[^a-zA-Z_-]*//; # sanitize cookie } - $lang =~ s/[^a-zA-Z_-]*//; #sanitzie + + # HTTP_ACCEPT_LANGUAGE + unless ($lang) { + my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE }; + $lang = accept_language( $http_accept_language, + getTranslatedLanguages($interface,'prog') ); + } + + # Ignore a lang not selected in sysprefs + $lang = undef unless first { $_ eq $lang } @languages; + + # Fall back to English if necessary + $lang = 'en' unless $lang; + return $lang; }