X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-main.pl;h=f724b9daa4e61500dc674615ca049d5c8f1670db;hb=37ca03479c2c3cfb04fc15214176f92bca2b6551;hp=0cc07cf2ab52cafc5a414bdac28c82a299d03e28;hpb=0a7c849997b691dc821f175c7a2ec359bb3211c5;p=koha.git diff --git a/opac/opac-main.pl b/opac/opac-main.pl index 0cc07cf2ab..f724b9daa4 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -1,113 +1,85 @@ #!/usr/bin/perl + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + + use strict; -require Exporter; +use warnings; use CGI; -use HTML::Template; - -use C4::Context; -use C4::Auth; # get_template_and_user -use C4::Interface::CGI::Output; -use C4::BookShelves; -use C4::Koha; -use C4::Members; +use C4::Auth; # get_template_and_user +use C4::Output; +use C4::VirtualShelves; +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 $kohaVersion = C4::Context->config("kohaversion"); -my $dbh = C4::Context->dbh; -my $query="Select itemtype,description from itemtypes order by description"; -my $sth=$dbh->prepare($query); -$sth->execute; -my @itemtypeloop; -my %itemtypes; -while (my ($value,$lib) = $sth->fetchrow_array) { - my %row =( value => $value, - description => $lib, - ); - push @itemtypeloop, \%row; -} -$sth->finish; +my $dbh = C4::Context->dbh; -my @branches; -my @select_branch; -my %select_branches; -my $branches = getallbranches(); -my @branchloop; -foreach my $thisbranch (keys %$branches) { - my $selected = 1 if (C4::Context->userenv && ($thisbranch eq C4::Context->userenv->{branch})); - my %row =(value => $thisbranch, - selected => $selected, - branchname => $branches->{$thisbranch}->{'branchname'}, - ); - push @branchloop, \%row; -} +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-main.tmpl", + type => "opac", + query => $input, + authnotrequired => 1, + flagsrequired => { borrow => 1 }, + } +); -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "opac-main.tmpl", - type => "opac", - query => $input, - authnotrequired => 1, - flagsrequired => {borrow => 1}, - }); -my $borrower = getmember('',$borrowernumber); -my @options; -my $counter=0; -foreach my $language (getalllanguages()) { - next if $language eq 'images'; - next if $language eq 'CVS'; - next if $language=~ /png$/; - next if $language=~ /css$/; - my $selected='0'; -# next if $currently_selected_languages->{$language}; - push @options, { language => $language, counter => $counter }; - $counter++; -} -my $languages_count = @options; +my $borrower = GetMember( $borrowernumber, 'borrowernumber' ); +$template->param( + textmessaging => $borrower->{textmessaging}, +); -if($languages_count > 1){ - $template->param(languages => \@options); +# display news +# use cookie setting for language, bug default to syspref if it's not set +(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 $branchinfo = getbranchinfo(); -my @loop_data =(); -foreach my $branch (@$branchinfo) { - my %row =(); - $row{'branch_name'} = $branch->{'branchname'}; - $row{'branch_hours'} = $branch->{'branchhours'}; - $row{'branch_hours'} =~ s^\n^
^g; - push (@loop_data, \%row); +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]; } - -sub getbranchinfo { - my $dbh = C4::Context->dbh; - my $sth; - $sth = $dbh->prepare("Select * from branches order by branchcode"); - $sth->execute(); - - my @results; - while(my $data = $sth->fetchrow_hashref) { - push(@results, $data); - } - $sth->finish; - return \@results; } +$news_lang = $news_lang ? $news_lang : 'en' ; -$template->param(CGIitemtype => $CGIitemtype, - suggestion => C4::Context->preference("suggestion"), - virtualshelves => C4::Context->preference("virtualshelves"), - textmessaging => $borrower->{textmessaging}, - opaclargeimage => C4::Context->preference("opaclargeimage"), - LibraryName => C4::Context->preference("LibraryName"), - OpacNav => C4::Context->preference("OpacNav"), - opaccredits => C4::Context->preference("opaccredits"), - opacreadinghistory => C4::Context->preference("opacreadinghistory"), - opacsmallimage => C4::Context->preference("opacsmallimage"), - opaclayoutstylesheet => C4::Context->preference("opaclayoutstylesheet"), - opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"), - opaclanguagesdisplay => C4::Context->preference("opaclanguagesdisplay"), - branches => \@loop_data, -); +my $all_koha_news = &GetNewsToDisplay($news_lang); +my $koha_news_count = scalar @$all_koha_news; -$template->param('Disable_Dictionary'=>C4::Context->preference("Disable_Dictionary")) if (C4::Context->preference("Disable_Dictionary")); +$template->param( + koha_news => $all_koha_news, + koha_news_count => $koha_news_count +); output_html_with_http_headers $input, $cookie, $template->output;