use strict;
-require Exporter;
+use warnings;
use CGI;
use C4::Auth; # get_template_and_user
use C4::Output;
use C4::VirtualShelves;
-use C4::Languages qw/getTranslatedLanguages/;
use C4::Branch; # GetBranches
use C4::Members; # GetMember
use C4::NewsChannels; # get_opac_news
use C4::Acquisition; # GetRecentAcqui
+use C4::Languages qw(getTranslatedLanguages accept_language);
my $input = new CGI;
my $dbh = C4::Context->dbh;
);
my $borrower = GetMember( $borrowernumber, 'borrowernumber' );
-my @languages;
-my $counter = 0;
-my $langavail = getTranslatedLanguages('opac');
-foreach my $language (@$langavail) {
-
-# next if $currently_selected_languages->{$language};
-# FIXME: could incorporate language_name and language_locale_name for better display
- push @languages,
- { language => $language->{'language_code'}, counter => $counter, selected=>($input->cookie('KohaOpacLanguage') ? $language->{'language_code'} eq $input->cookie('KohaOpacLanguage')
- : $language->{'language_code'} eq C4::Context->preference('opaclanguages')) };
- $counter++;
-}
-
-# Template params
-if ( $counter > 1 ) {
- $template->param( languages => \@languages )
- if C4::Context->preference('opaclanguagesdisplay');
-}
-
$template->param(
textmessaging => $borrower->{textmessaging},
);
# display news
# use cookie setting for language, bug default to syspref if it's not set
-my $news_lang = $input->cookie('KohaOpacLanguage')
- || C4::Context->preference('opaclanguages');
+(my $theme) = themelanguage(C4::Context->config('opachtdocs'),'opac-main.tmpl','opac',$input);
+
+my $translations = getTranslatedLanguages('opac',$theme);
+my @languages = ();
+foreach my $trans (@$translations)
+{
+ push(@languages, $trans->{rfc4646_subtag});
+}
+
+my $news_lang;
+if($input->cookie('KohaOpacLanguage')){
+ $news_lang = $input->cookie('KohaOpacLanguage');
+}else{
+ while( !$news_lang && ( $ENV{HTTP_ACCEPT_LANGUAGE} =~ m/([a-zA-Z]{2,}-?[a-zA-Z]*)(;|,)?/g ) ){
+ if( my @lang = grep { /^$1$/i } @languages ) {
+ $news_lang = $lang[0];
+ }
+ }
+ if (not $news_lang) {
+ my @languages = split ",", C4::Context->preference("opaclanguages");
+ $news_lang = @languages[0];
+ }
+}
+
+$news_lang = $news_lang ? $news_lang : 'en' ;
+
my $all_koha_news = &GetNewsToDisplay($news_lang);
my $koha_news_count = scalar @$all_koha_news;
koha_news_count => $koha_news_count
);
-$template->param(
- 'Disable_Dictionary' => C4::Context->preference("Disable_Dictionary") )
- if ( C4::Context->preference("Disable_Dictionary") );
-
output_html_with_http_headers $input, $cookie, $template->output;