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

(-)a/C4/Templates.pm (-22 / +32 lines)
Lines 273-293 sub themelanguage { Link Here
273
    ($query) or warn "no query in themelanguage";
273
    ($query) or warn "no query in themelanguage";
274
274
275
    # Select a language based on cookie, syspref available languages & browser
275
    # Select a language based on cookie, syspref available languages & browser
276
    my $is_intranet = $interface eq 'intranet';
276
    my $lang = getlanguage($query, $interface);
277
    my @languages = split(",", C4::Context->preference(
278
        $is_intranet ? 'language' : 'opaclanguages'));
279
    my $lang;
280
    $lang = getlanguagecookie($query);
281
    unless ($lang) {
282
        my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE };
283
        $lang = accept_language( $http_accept_language, 
284
            getTranslatedLanguages($interface,'prog') );
285
    }
286
    # Ignore a lang not selected in sysprefs
287
    $lang = undef  unless first { $_ eq $lang } @languages;
288
    # Fall back to English if necessary
289
    $lang = 'en' unless $lang;
290
277
278
    # Select theme
279
    my $is_intranet = $interface eq 'intranet';
291
    my @themes = split(" ", C4::Context->preference(
280
    my @themes = split(" ", C4::Context->preference(
292
        $is_intranet ? "template" : "opacthemes" ));
281
        $is_intranet ? "template" : "opacthemes" ));
293
    push @themes, 'prog';
282
    push @themes, 'prog';
Lines 317-332 sub setlanguagecookie { Link Here
317
    );
306
    );
318
}
307
}
319
308
320
sub getlanguagecookie {
309
321
    my ($query) = @_;
310
sub getlanguage {
311
    my $query = shift;
312
    my $interface = shift || 'opac';
313
314
    # Select a language based on cookie, syspref available languages & browser
315
    my $is_intranet = $interface eq 'intranet';
316
    my @languages = split(",", C4::Context->preference(
317
	$is_intranet ? 'language' : 'opaclanguages'));
318
322
    my $lang;
319
    my $lang;
323
    if ($query->cookie('KohaOpacLanguage')){
320
324
        $lang = $query->cookie('KohaOpacLanguage') ;
321
    # cookie
325
    }else{
322
    if ( $query->cookie('KohaOpacLanguage') ) {
326
        $lang = $ENV{HTTP_ACCEPT_LANGUAGE};
323
	$lang = $query->cookie('KohaOpacLanguage');
327
        
324
        $lang =~ s/[^a-zA-Z_-]*//; # sanitize cookie
325
    }
326
327
    # HTTP_ACCEPT_LANGUAGE
328
    unless ($lang) {
329
        my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE };
330
	$lang = accept_language( $http_accept_language,
331
	    getTranslatedLanguages($interface,'prog') );
328
    }
332
    }
329
    $lang =~ s/[^a-zA-Z_-]*//; #sanitzie
333
334
    # Ignore a lang not selected in sysprefs
335
    $lang = undef  unless first { $_ eq $lang } @languages;
336
337
    # Fall back to English if necessary
338
    $lang = 'en' unless $lang;
339
330
    return $lang;
340
    return $lang;
331
}
341
}
332
342
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 471-477 my ( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit Link Here
471
my @results;
471
my @results;
472
472
473
## I. BUILD THE QUERY
473
## I. BUILD THE QUERY
474
my $lang = C4::Templates::getlanguagecookie($cgi);
474
my $lang = C4::Templates::getlanguage($cgi);
475
( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(\@operators,\@operands,\@indexes,\@limits,\@sort_by,$scan,$lang);
475
( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(\@operators,\@operands,\@indexes,\@limits,\@sort_by,$scan,$lang);
476
476
477
## parse the query_cgi string and put it into a form suitable for <input>s
477
## parse the query_cgi string and put it into a form suitable for <input>s
(-)a/opac/opac-search.pl (-2 / +1 lines)
Lines 388-394 my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_ Link Here
388
my @results;
388
my @results;
389
389
390
## I. BUILD THE QUERY
390
## I. BUILD THE QUERY
391
my $lang = C4::Templates::getlanguagecookie($cgi);
391
my $lang = C4::Templates::getlanguage($cgi);
392
( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(\@operators,\@operands,\@indexes,\@limits,\@sort_by, 0, $lang);
392
( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(\@operators,\@operands,\@indexes,\@limits,\@sort_by, 0, $lang);
393
393
394
sub _input_cgi_parse ($) { 
394
sub _input_cgi_parse ($) { 
395
- 

Return to bug 7282