X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-main.pl;h=779c06d5870e446c51f145afeb1a70381ab6327d;hb=7c7db3eb6be53737af4c06a052b425f2c066575b;hp=c716c605507cc166d14900f6517d07f65c52f595;hpb=6eeb5180422d9439afb9e783aae70f7c1beb27e7;p=koha-ffzg.git diff --git a/opac/opac-main.pl b/opac/opac-main.pl index c716c60550..779c06d587 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -2,39 +2,43 @@ # 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. +# Parts Copyright (C) 2013 Mark Tompsett # -# 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. +# 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 3 of the License, or +# (at your option) any later version. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# 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, see . -use strict; -use warnings; -use CGI; -use C4::Auth; # get_template_and_user -use C4::Output; -use C4::NewsChannels; # get_opac_news -use C4::Languages qw(getTranslatedLanguages accept_language); -use C4::Koha qw( GetDailyQuote ); +use Modern::Perl; +use CGI qw ( -utf8 ); +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use Koha::Quotes; +use C4::Members; +use C4::Overdues qw( checkoverdues ); +use Koha::Checkouts; +use Koha::Holds; +use Koha::AdditionalContents; +use Koha::Patron::Messages; -my $input = new CGI; +my $input = CGI->new; my $dbh = C4::Context->dbh; my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { - template_name => "opac-main.tmpl", + template_name => "opac-main.tt", type => "opac", query => $input, authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), - flagsrequired => { borrow => 1 }, } ); @@ -43,26 +47,71 @@ $template->param( casAuthentication => $casAuthentication, ); +my $homebranch = $ENV{OPAC_BRANCH_DEFAULT}; +if (C4::Context->userenv) { + $homebranch = C4::Context->userenv->{'branch'}; +} +if (defined $input->param('branch') and length $input->param('branch')) { + $homebranch = $input->param('branch'); +} +elsif (C4::Context->userenv and defined $input->param('branch') and length $input->param('branch') == 0 ){ + $homebranch = ""; +} -# display news -# use cookie setting for language, bug default to syspref if it's not set -my ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-main.tt','opac',$input); +my $news_id = $input->param('news_id'); +my $koha_news; -my $all_koha_news = &GetNewsToDisplay($news_lang); -my $koha_news_count = scalar @$all_koha_news; +if (defined $news_id){ + $koha_news = Koha::AdditionalContents->search({ idnew => $news_id, location => ['opac_only', 'staff_and_opac'] }); # get news that is not staff-only news + if ( $koha_news->count > 0){ + $template->param( news_item => $koha_news->next ); + } else { + $template->param( single_news_error => 1 ); + } +} else { + $koha_news = Koha::AdditionalContents->search_for_display( + { + category => 'news', + location => ['opac_only', 'staff_and_opac'], + lang => $template->lang, + library_id => $homebranch, + } + ); +} -my $quote = GetDailyQuote(); # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha +# For dashboard +my $patron = Koha::Patrons->find( $borrowernumber ); + +if ( $patron ) { + my $checkouts = Koha::Checkouts->search({ borrowernumber => $borrowernumber })->count; + my ( $overdues_count, $overdues ) = checkoverdues($borrowernumber); + my $holds_pending = Koha::Holds->search({ borrowernumber => $borrowernumber, found => undef })->count; + my $holds_waiting = Koha::Holds->search({ borrowernumber => $borrowernumber })->waiting->count; + my $patron_messages = Koha::Patron::Messages->search( + { + borrowernumber => $borrowernumber, + message_type => 'B', + }); + my $patron_note = $patron->opacnote; + my $total = $patron->account->balance; + if ( $checkouts > 0 || $overdues_count > 0 || $holds_pending > 0 || $holds_waiting > 0 || $total > 0 || $patron_note || $patron_messages->count ) { + $template->param( + dashboard_info => 1, + checkouts => $checkouts, + overdues => $overdues_count, + holds_pending => $holds_pending, + holds_waiting => $holds_waiting, + total_owing => $total, + patron_messages => $patron_messages, + opacnote => $patron_note, + ); + } +} $template->param( - koha_news => $all_koha_news, - koha_news_count => $koha_news_count, - display_daily_quote => C4::Context->preference('QuoteOfTheDay'), - daily_quote => $quote, + koha_news => $koha_news, + branchcode => $homebranch, + daily_quote => Koha::Quotes->get_daily_quote(), ); -# 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;