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

(-)a/C4/Auth.pm (+10 lines)
Lines 472-477 sub get_template_and_user { Link Here
472
472
473
        $template->param(OpacPublic => '1') if ($user || C4::Context->preference("OpacPublic"));
473
        $template->param(OpacPublic => '1') if ($user || C4::Context->preference("OpacPublic"));
474
    }
474
    }
475
476
    # Check if we were asked using parameters to force a specific language
477
    if ( defined $in->{'query'}->param('language') ) {
478
        # Extract the language, let C4::Templates::getlanguage choose
479
        # what to do
480
        my $language = C4::Templates::getlanguage($in->{'query'},$in->{'type'});
481
        my $languagecookie = C4::Templates::getlanguagecookie($in->{'query'},$language);
482
        $cookie = [$cookie, $languagecookie];
483
    }
484
475
    return ( $template, $borrowernumber, $cookie, $flags);
485
    return ( $template, $borrowernumber, $cookie, $flags);
476
}
486
}
477
487
(-)a/C4/Templates.pm (-2 / +33 lines)
Lines 314-330 sub setlanguagecookie { Link Here
314
    );
314
    );
315
}
315
}
316
316
317
=head2 getlanguagecookie
318
319
    my $cookie = getlanguagecookie($query,$language);
320
321
Returns a cookie object containing the calculated language to be used.
322
323
=cut
324
325
sub getlanguagecookie {
326
    my ( $query, $language ) = @_;
327
    my $cookie = $query->cookie(
328
        -name    => 'KohaOpacLanguage',
329
        -value   => $language,
330
        -HttpOnly => 1,
331
        -expires => '+3y'
332
    );
333
334
    return $cookie;
335
}
336
337
=head2 getlanguage
338
339
    Select a language based on the URL parameter 'language', a cookie,
340
    syspref available languages & browser
341
342
=cut
317
343
318
sub getlanguage {
344
sub getlanguage {
319
    my ($query, $interface) = @_;
345
    my ($query, $interface) = @_;
320
346
321
    # Select a language based on cookie, syspref available languages & browser
322
    my $preference_to_check =
347
    my $preference_to_check =
323
      $interface eq 'intranet' ? 'language' : 'opaclanguages';
348
      $interface eq 'intranet' ? 'language' : 'opaclanguages';
349
    # Get the available/valid languages list
324
    my @languages = split /,/, C4::Context->preference($preference_to_check);
350
    my @languages = split /,/, C4::Context->preference($preference_to_check);
325
351
326
    my $lang;
352
    my $lang;
327
353
354
    # Chose language from the URL
355
    $lang = $query->param( 'language' );
356
    if ( defined $lang && any { $_ eq $lang } @languages) {
357
        return $lang;
358
    }
359
328
    # cookie
360
    # cookie
329
    if ( $query->cookie('KohaOpacLanguage') ) {
361
    if ( $query->cookie('KohaOpacLanguage') ) {
330
        $lang = $query->cookie('KohaOpacLanguage');
362
        $lang = $query->cookie('KohaOpacLanguage');
331
- 

Return to bug 9735