X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-main.pl;h=2398b6a4aad9f4e5b267c4e1a6377ba7dececfef;hb=38d75d28afd485aabdb5d4491a0b8380dc8c409a;hp=f218a006e2affd045d6357e6b74ec399b44694ce;hpb=4747ea7462c04770484386538b1594c1760bc75b;p=koha.git diff --git a/opac/opac-main.pl b/opac/opac-main.pl index f218a006e2..2398b6a4aa 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -2,42 +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., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 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 Modern::Perl; +use CGI qw ( -utf8 ); 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::NewsChannels; # GetNewsToDisplay use C4::Languages qw(getTranslatedLanguages accept_language); +use C4::Koha qw( GetDailyQuote ); +use C4::Members; +use C4::Overdues; +use Koha::Checkouts; +use Koha::Holds; my $input = new CGI; 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 => 1, - flagsrequired => { borrow => 1 }, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), } ); @@ -46,49 +47,57 @@ $template->param( casAuthentication => $casAuthentication, ); - -my $borrower = GetMember( borrowernumber=>$borrowernumber ); -$template->param( - textmessaging => $borrower->{textmessaging}, -) if (ref($borrower) eq "HASH"); - # 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 ($theme, $news_lang, $availablethemes) = C4::Templates::themelanguage(C4::Context->config('opachtdocs'),'opac-main.tt','opac',$input); -my $translations = getTranslatedLanguages('opac',$theme); -my @languages = (); -foreach my $trans (@$translations) -{ - push(@languages, $trans->{rfc4646_subtag}); +my $homebranch; +if (C4::Context->userenv) { + $homebranch = C4::Context->userenv->{'branch'}; } - -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]; - } +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 = ""; } +my $all_koha_news = &GetNewsToDisplay($news_lang,$homebranch); +my $koha_news_count = scalar @$all_koha_news; -$news_lang = $news_lang ? $news_lang : 'en' ; +my $quote = GetDailyQuote(); # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha -my $all_koha_news = &GetNewsToDisplay($news_lang); -my $koha_news_count = scalar @$all_koha_news; +# 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 $total = $patron->account->balance; + + if ( $checkouts > 0 || $overdues_count > 0 || $holds_pending > 0 || $holds_waiting > 0 || $total > 0 ) { + $template->param( + dashboard_info => 1, + checkouts => $checkouts, + overdues => $overdues_count, + holds_pending => $holds_pending, + holds_waiting => $holds_waiting, + total_owing => $total, + ); + } +} $template->param( - koha_news => $all_koha_news, - koha_news_count => $koha_news_count + koha_news => $all_koha_news, + koha_news_count => $koha_news_count, + branchcode => $homebranch, + display_daily_quote => C4::Context->preference('QuoteOfTheDay'), + daily_quote => $quote, ); -# If GoogleIndicTransliteration system preference is On Set paramter to load Google's javascript in OPAC search screens +# 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); }