X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=opac%2Fopac-main.pl;h=e0a65a9ae88847d3af5de5017a6f9806297c1e7d;hb=d4260af339b74b597e96b5223e5ee8d88de5925d;hp=5875baa1d3bbdffb0c989aa01677960f4f6d87c4;hpb=606ecb532aa42562687bf0d05b4d6df6697300d7;p=koha.git diff --git a/opac/opac-main.pl b/opac/opac-main.pl index 5875baa1d3..e0a65a9ae8 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -17,16 +17,16 @@ use strict; -require Exporter; +use warnings; use CGI; use C4::Auth; # get_template_and_user use C4::Output; use C4::VirtualShelves; -use C4::Languages; # 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; @@ -41,34 +41,47 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( } ); -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 }; - $counter++; -} +my $casAuthentication = C4::Context->preference('casAuthentication'); +$template->param( + casAuthentication => $casAuthentication, +); -# Template params -if ( $counter > 1 ) { - $template->param( languages => \@languages ) - if C4::Context->preference('opaclanguagesdisplay'); -} +my $borrower = GetMember( borrowernumber=>$borrowernumber ); $template->param( textmessaging => $borrower->{textmessaging}, - opaclanguagesdisplay => 0, -); +) if (ref($borrower) eq "HASH"); # 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{ + if ($ENV{HTTP_ACCEPT_LANGUAGE}) { + 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; @@ -77,8 +90,9 @@ $template->param( koha_news_count => $koha_news_count ); -$template->param( - 'Disable_Dictionary' => C4::Context->preference("Disable_Dictionary") ) - if ( C4::Context->preference("Disable_Dictionary") ); +# If GoogleIndicTransliteration system preference is On Set paramter to load Google's javascript in OPAC search screens +if (C4::Context->preference('GoogleIndicTransliteration')) { + $template->param('GoogleIndicTransliteration' => 1); +} output_html_with_http_headers $input, $cookie, $template->output;