|
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 |
- |
|
|