View | Details | Raw Unified | Return to bug 16088
Collapse All | Expand All

(-)a/C4/Languages.pm (-8 / +4 lines)
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(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
30
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
30
31
31
eval {
32
eval {
Lines 569-575 sub accept_language { Link Here
569
sub getlanguage {
570
sub getlanguage {
570
    my ($cgi) = @_;
571
    my ($cgi) = @_;
571
572
572
    $cgi //= new CGI;
573
    my $interface = C4::Context->interface;
573
    my $interface = C4::Context->interface;
574
    my $theme = C4::Context->preference( ( $interface eq 'opac' ) ? 'opacthemes' : 'template' );
574
    my $theme = C4::Context->preference( ( $interface eq 'opac' ) ? 'opacthemes' : 'template' );
575
    my $language;
575
    my $language;
Lines 583-599 sub getlanguage { Link Here
583
        @languages = split /,/, $preference_value;
583
        @languages = split /,/, $preference_value;
584
    }
584
    }
585
585
586
    # Chose language from the URL
586
    # Chose language from the URL or the cookie
587
    $language = $cgi->param( 'language' );
587
    $language = $cgi ? $cgi->param( 'language' ) || $cgi->cookie('KohaOpacLanguage') : Koha::CGI->language;
588
    $language =~ s/[^a-zA-Z_-]*//; # sanitize cookie
588
    if ( defined $language && any { $_ eq $language } @languages) {
589
    if ( defined $language && any { $_ eq $language } @languages) {
589
        return $language;
590
        return $language;
590
    }
591
    }
591
592
592
    # cookie
593
    if ($language = $cgi->cookie('KohaOpacLanguage') ) {
594
        $language =~ s/[^a-zA-Z_-]*//; # sanitize cookie
595
    }
596
597
    # HTTP_ACCEPT_LANGUAGE
593
    # HTTP_ACCEPT_LANGUAGE
598
    if ( !$language && $ENV{HTTP_ACCEPT_LANGUAGE} ) {
594
    if ( !$language && $ENV{HTTP_ACCEPT_LANGUAGE} ) {
599
        $language = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE},
595
        $language = accept_language( $ENV{HTTP_ACCEPT_LANGUAGE},
(-)a/Koha/CGI.pm (+20 lines)
Line 0 Link Here
1
package Koha::CGI;
2
3
use Modern::Perl;
4
5
#use base CGI;
6
7
our $language;
8
sub new {
9
    my $self = CGI->new;
10
    $language = $self->param('language') || $self->cookie('KohaOpacLanguage');
11
    return $self;
12
}
13
sub language {
14
    my ( $class ) = @_;
15
    return $language if $language;
16
    $class->new;
17
    return $language;
18
}
19
20
1;
(-)a/catalogue/search.pl (-3 / +2 lines)
Lines 160-167 use URI::Escape; Link Here
160
my $DisplayMultiPlaceHold = C4::Context->preference("DisplayMultiPlaceHold");
160
my $DisplayMultiPlaceHold = C4::Context->preference("DisplayMultiPlaceHold");
161
# create a new CGI object
161
# create a new CGI object
162
# FIXME: no_undef_params needs to be tested
162
# FIXME: no_undef_params needs to be tested
163
use CGI qw('-no_undef_params' -utf8 );
163
use Koha::CGI qw('-no_undef_params' -utf8 );
164
my $cgi = new CGI;
164
my $cgi = Koha::CGI->new;
165
165
166
# decide which template to use
166
# decide which template to use
167
my $template_name;
167
my $template_name;
168
- 

Return to bug 16088