X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-readingrecord.pl;h=4f16c66398d8924bc1a65f02d381ae7c7edcbbc7;hb=ef7ebc4ed4004dd3287e87500a6cce266c59cba6;hp=bedd4517e52bec08c3e064a11be018dc2cf04dfe;hpb=7ed4e5043094d3932258d982149e500d962e7f52;p=koha.git diff --git a/opac/opac-readingrecord.pl b/opac/opac-readingrecord.pl index bedd4517e5..4f16c66398 100755 --- a/opac/opac-readingrecord.pl +++ b/opac/opac-readingrecord.pl @@ -1,58 +1,147 @@ #!/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., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + use strict; -require Exporter; +use warnings; + use CGI; use C4::Auth; use C4::Koha; -use C4::Circulation::Circ2; -use C4::Search; -use HTML::Template; -use C4::Interface::CGI::Output; +use C4::Biblio; +use C4::Circulation; +use C4::Members; +use Koha::DateUtils; +use MARC::Record; + +use C4::Output; +use C4::Charset qw(StripNonXmlChars); my $query = new CGI; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "opac-readingrecord.tmpl", - query => $query, - type => "opac", - authnotrequired => 0, - flagsrequired => {borrow => 1}, - debug => 1, - }); +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-readingrecord.tmpl", + query => $query, + type => "opac", + authnotrequired => 0, + flagsrequired => { borrow => 1 }, + debug => 1, + } +); # get borrower information .... -my ($borr, $flags) = getpatroninformation(undef, $borrowernumber); +my ( $borr ) = GetMemberDetails( $borrowernumber ); +$template->param(%{$borr}); -$template->param($borr); +my $itemtypes = GetItemTypes(); # get the record -my $order=$query->param('order'); -my $order2=$order; -if ($order2 eq ''){ - $order2="date_due desc"; +my $order = $query->param('order') || ''; +if ( $order eq 'title' ) { + $template->param( orderbytitle => 1 ); } -my $limit=$query->param('limit'); -if ($limit eq 'full'){ - $limit=0; -} else { - $limit=50; +elsif ( $order eq 'author' ) { + $template->param( orderbyauthor => 1 ); } -my ($count,$issues)=allissues($borrowernumber,$order2,$limit); - -# add the row parity -my $num = 0; -foreach my $row (@$issues) { - $row->{'even'} = 1 if $num % 2 == 0; - $row->{'odd'} = 1 if $num % 2 == 1; - $num++; +else { + $order = "date_due desc"; + $template->param( orderbydate => 1 ); } -$template->param(count => $count); -$template->param(READING_RECORD => $issues, - LibraryName => C4::Context->preference("LibraryName"), -); +my $limit = $query->param('limit'); +$limit = ( $limit eq 'full' ) ? 0 : 50; -output_html_with_http_headers $query, $cookie, $template->output; +my $issues = GetAllIssues( $borrowernumber, $order, $limit ); + +my $itype_attribute = + ( C4::Context->preference('item-level_itypes') ) ? 'itype' : 'itemtype'; + +my $opac_summary_html = C4::Context->preference('OPACMySummaryHTML'); +foreach my $issue ( @{$issues} ) { + $issue->{normalized_isbn} = GetNormalizedISBN( $issue->{isbn} ); + if ( $issue->{$itype_attribute} ) { + $issue->{description} = + $itemtypes->{ $issue->{$itype_attribute} }->{description}; + $issue->{imageurl} = + getitemtypeimagelocation( 'opac', + $itemtypes->{ $issue->{$itype_attribute} }->{imageurl} ); + } + if ( $issue->{marcxml} ) { + my $marcxml = StripNonXmlChars( $issue->{marcxml} ); + my $marc_rec = + MARC::Record::new_from_xml( $marcxml, 'utf8', + C4::Context->preference('marcflavour') ); + $issue->{subtitle} = + GetRecordValue( 'subtitle', $marc_rec, $issue->{frameworkcode} ); + } + # My Summary HTML + if ($opac_summary_html) { + my $my_summary_html = $opac_summary_html; + $issue->{author} + ? $my_summary_html =~ s/{AUTHOR}/$issue->{author}/g + : $my_summary_html =~ s/{AUTHOR}//g; + my $title = $issue->{title}; + $title =~ s/\/+$//; # remove trailing slash + $title =~ s/\s+$//; # remove trailing space + $title + ? $my_summary_html =~ s/{TITLE}/$title/g + : $my_summary_html =~ s/{TITLE}//g; + $issue->{normalized_isbn} + ? $my_summary_html =~ s/{ISBN}/$issue->{normalized_isbn}/g + : $my_summary_html =~ s/{ISBN}//g; + $issue->{biblionumber} + ? $my_summary_html =~ s/{BIBLIONUMBER}/$issue->{biblionumber}/g + : $my_summary_html =~ s/{BIBLIONUMBER}//g; + $issue->{MySummaryHTML} = $my_summary_html; + } +} + +if (C4::Context->preference('BakerTaylorEnabled')) { + $template->param( + JacketImages=>1, + BakerTaylorEnabled => 1, + BakerTaylorImageURL => &image_url(), + BakerTaylorLinkURL => &link_url(), + BakerTaylorBookstoreURL => C4::Context->preference('BakerTaylorBookstoreURL'), + ); +} + +BEGIN { + if (C4::Context->preference('BakerTaylorEnabled')) { + require C4::External::BakerTaylor; + import C4::External::BakerTaylor qw(&image_url &link_url); + } +} +for(qw(AmazonCoverImages GoogleJackets)) { # BakerTaylorEnabled handled above + C4::Context->preference($_) or next; + $template->param($_=>1); + $template->param(JacketImages=>1); +} + +$template->param( + READING_RECORD => $issues, + limit => $limit, + showfulllink => 1, + readingrecview => 1, + OPACMySummaryHTML => $opac_summary_html ? 1 : 0, +); + +output_html_with_http_headers $query, $cookie, $template->output;