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

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

Return to bug 9735