X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-main.pl;h=779c06d5870e446c51f145afeb1a70381ab6327d;hb=64a29e3b4c6bb94afec56a224259ad822ca5be50;hp=d586a7cb2b6fece4adb726a8a45e06584e4b0d7d;hpb=497cd04df0dc68b2c3972343a64f0f5221cc6d70;p=koha-ffzg.git diff --git a/opac/opac-main.pl b/opac/opac-main.pl index d586a7cb2b..779c06d587 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -20,13 +20,17 @@ use Modern::Perl; use CGI qw ( -utf8 ); -use C4::Auth; # get_template_and_user -use C4::Output; -use C4::NewsChannels; # GetNewsToDisplay -use C4::Languages qw(getTranslatedLanguages accept_language); -use C4::Koha qw( GetDailyQuote ); +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( @@ -43,34 +47,71 @@ $template->param( casAuthentication => $casAuthentication, ); -# 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 $homebranch; +my $homebranch = $ENV{OPAC_BRANCH_DEFAULT}; if (C4::Context->userenv) { $homebranch = C4::Context->userenv->{'branch'}; } -my $all_koha_news = &GetNewsToDisplay($news_lang,$homebranch); -my $koha_news_count = scalar @$all_koha_news; - -my $quote = GetDailyQuote(); # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha +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 = ""; +} -$template->param( - koha_news => $all_koha_news, - koha_news_count => $koha_news_count, - branchcode => $homebranch, - display_daily_quote => C4::Context->preference('QuoteOfTheDay'), - daily_quote => $quote, -); +my $news_id = $input->param('news_id'); +my $koha_news; -# If GoogleIndicTransliteration system preference is On Set parameter to load Google's javascript in OPAC search screens -if (C4::Context->preference('GoogleIndicTransliteration')) { - $template->param('GoogleIndicTransliteration' => 1); +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, + } + ); } -if (C4::Context->preference('OPACNumbersPreferPhrase')) { - $template->param('numbersphr' => 1); +# 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 => $koha_news, + branchcode => $homebranch, + daily_quote => Koha::Quotes->get_daily_quote(), +); + output_html_with_http_headers $input, $cookie, $template->output;