Lines 26-31
use Carp;
Link Here
|
26 |
use CGI; |
26 |
use CGI; |
27 |
use List::MoreUtils qw( any ); |
27 |
use List::MoreUtils qw( any ); |
28 |
use C4::Context; |
28 |
use C4::Context; |
|
|
29 |
use Koha::CGI; |
29 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); |
30 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); |
30 |
|
31 |
|
31 |
eval { |
32 |
eval { |
Lines 570-576
sub accept_language {
Link Here
|
570 |
sub getlanguage { |
571 |
sub getlanguage { |
571 |
my ($cgi) = @_; |
572 |
my ($cgi) = @_; |
572 |
|
573 |
|
573 |
$cgi //= new CGI; |
|
|
574 |
my $interface = C4::Context->interface; |
574 |
my $interface = C4::Context->interface; |
575 |
my $theme = C4::Context->preference( ( $interface eq 'opac' ) ? 'opacthemes' : 'template' ); |
575 |
my $theme = C4::Context->preference( ( $interface eq 'opac' ) ? 'opacthemes' : 'template' ); |
576 |
my $language; |
576 |
my $language; |
Lines 584-600
sub getlanguage {
Link Here
|
584 |
@languages = split /,/, $preference_value; |
584 |
@languages = split /,/, $preference_value; |
585 |
} |
585 |
} |
586 |
|
586 |
|
587 |
# Chose language from the URL |
587 |
# Chose language from the URL or the cookie |
588 |
$language = $cgi->param( 'language' ); |
588 |
$language = $cgi ? $cgi->param( 'language' ) || $cgi->cookie('KohaOpacLanguage') : Koha::CGI->language; |
|
|
589 |
$language =~ s/[^a-zA-Z_-]*//; # sanitize cookie |
589 |
if ( defined $language && any { $_ eq $language } @languages) { |
590 |
if ( defined $language && any { $_ eq $language } @languages) { |
590 |
return $language; |
591 |
return $language; |
591 |
} |
592 |
} |
592 |
|
593 |
|
593 |
# cookie |
|
|
594 |
if ($language = $cgi->cookie('KohaOpacLanguage') ) { |
595 |
$language =~ s/[^a-zA-Z_-]*//; # sanitize cookie |
596 |
} |
597 |
|
598 |
# HTTP_ACCEPT_LANGUAGE |
594 |
# HTTP_ACCEPT_LANGUAGE |
599 |
if ( !$language && $ENV{HTTP_ACCEPT_LANGUAGE} ) { |
595 |
if ( !$language && $ENV{HTTP_ACCEPT_LANGUAGE} ) { |
600 |
$language = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE}, |
596 |
$language = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE}, |