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

(-)a/C4/Templates.pm (-22 / +31 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, $interface) = @_;
312
313
    # Select a language based on cookie, syspref available languages & browser
314
    my $is_intranet = $interface eq 'intranet';
315
    my @languages = split(",", C4::Context->preference(
316
	$is_intranet ? 'language' : 'opaclanguages'));
317
322
    my $lang;
318
    my $lang;
323
    if ($query->cookie('KohaOpacLanguage')){
319
324
        $lang = $query->cookie('KohaOpacLanguage') ;
320
    # cookie
325
    }else{
321
    if ( $query->cookie('KohaOpacLanguage') ) {
326
        $lang = $ENV{HTTP_ACCEPT_LANGUAGE};
322
	$lang = $query->cookie('KohaOpacLanguage');
327
        
323
        $lang =~ s/[^a-zA-Z_-]*//; # sanitize cookie
324
    }
325
326
    # HTTP_ACCEPT_LANGUAGE
327
    unless ($lang) {
328
        my $http_accept_language = $ENV{ HTTP_ACCEPT_LANGUAGE };
329
	$lang = accept_language( $http_accept_language,
330
	    getTranslatedLanguages($interface,'prog') );
328
    }
331
    }
329
    $lang =~ s/[^a-zA-Z_-]*//; #sanitzie
332
333
    # Ignore a lang not selected in sysprefs
334
    $lang = undef  unless first { $_ eq $lang } @languages;
335
336
    # Fall back to English if necessary
337
    $lang = 'en' unless $lang;
338
330
    return $lang;
339
    return $lang;
331
}
340
}
332
341
(-)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, 'intranet');
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, 'opac');
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