X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-detail.pl;h=90e0fbc27c5f7abab199e2403c7551efb31e5006;hb=230d8a902e6fe10c8aa25f2c8afb18bf736d4b06;hp=1fbd46e6ecc782c127148b6196c1240d9f0bda59;hpb=ec64f1fcd8b6fc4a4a5c158e339ff8a3860c31cd;p=koha.git diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 1fbd46e6ec..90e0fbc27c 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -1,59 +1,174 @@ #!/usr/bin/perl + +# Copyright 2000-2002 Katipo Communications +# +# 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 + +# $Id$ + use strict; require Exporter; use CGI; -use C4::Search; use C4::Auth; -use C4::Interface::CGI::Output; -use HTML::Template; +use C4::Serials; #uses getsubscriptionfrom biblionumber +use C4::Output; +use C4::Biblio; +use C4::Amazon; +use C4::Review; +use C4::Serials; +use C4::Members; -my $query=new CGI; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "opac-detail.tmpl", - query => $query, - type => "opac", - authnotrequired => 1, - flagsrequired => {borrow => 1}, - }); -my $biblionumber=$query->param('bib'); -$template->param(biblionumber => $biblionumber); +my $query = new CGI; +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-detail.tmpl", + query => $query, + type => "opac", + authnotrequired => 1, + flagsrequired => { borrow => 1 }, + } +); +my $biblionumber = $query->param('biblionumber') || $query->param('bib'); +$template->param( biblionumber => $biblionumber ); # change back when ive fixed request.pl -my @items = &ItemInfo(undef, $biblionumber, 'opac'); -my $dat = &bibdata($biblionumber); -my ($authorcount, $addauthor) = &addauthor($biblionumber); -my ($webbiblioitemcount, @webbiblioitems) = &getwebbiblioitems($biblionumber); -my ($websitecount, @websites) = &getwebsites($biblionumber); +my @items = &GetItemsInfo( $biblionumber, 'opac' ); +my $dat = &GetBiblioData($biblionumber); + +if (!$dat) { + print $query->redirect("/cgi-bin/koha/koha-tmpl/errors/404.pl"); +} + +#coping with subscriptions +my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber); +my @subscriptions = + GetSubscriptions( $dat->{title}, $dat->{issn}, $biblionumber ); +my @subs; +foreach my $subscription (@subscriptions) { + my %cell; + $cell{subscriptionid} = $subscription->{subscriptionid}; + $cell{subscriptionnotes} = $subscription->{notes}; -$dat->{'count'}=@items; + #get the three latest serials. + $cell{latestserials} = + GetLatestSerials( $subscription->{subscriptionid}, 3 ); + push @subs, \%cell; +} -$dat->{'additional'}=$addauthor->[0]->{'author'}; -for (my $i = 1; $i < $authorcount; $i++) { - $dat->{'additional'} .= "|" . $addauthor->[$i]->{'author'}; -} # for +$dat->{'count'} = @items; + +#adding RequestOnOpac filter to allow or not the display of plce reserve button +# FIXME - use me or delete me. +my $RequestOnOpac; +if (C4::Context->preference("RequestOnOpac")) { + $RequestOnOpac = 1; +} my $norequests = 1; foreach my $itm (@items) { - $norequests = 0 unless $itm->{'notforloan'}; - $itm->{$itm->{'publictype'}} = 1; + $norequests = 0 && $norequests + if ( (not $itm->{'wthdrawn'} ) + || (not $itm->{'itemlost'} ) + || (not $itm->{'itemnotforloan'} ) + || ($itm->{'itemnumber'} ) ); + $itm->{ $itm->{'publictype'} } = 1; } -$template->param(norequests => $norequests); +$template->param( norequests => $norequests, RequestOnOpac=>$RequestOnOpac ); -my @results = ($dat,); +## get notes and subjects from MARC record + my $dbh = C4::Context->dbh; + my $marcflavour = C4::Context->preference("marcflavour"); + my $record = GetMarcBiblio($biblionumber); + my $marcnotesarray = GetMarcNotes( $record, $marcflavour ); + my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour ); + my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour ); + my $marcseriesarray = GetMarcSeries($record,$marcflavour); -my $resultsarray=\@results; -my $itemsarray=\@items; -my $webarray=\@webbiblioitems; -my $sitearray=\@websites; + $template->param( + MARCNOTES => $marcnotesarray, + MARCSUBJCTS => $marcsubjctsarray, + MARCAUTHORS => $marcauthorsarray, + MARCSERIES => $marcseriesarray + ); -$template->param(BIBLIO_RESULTS => $resultsarray); -$template->param(ITEM_RESULTS => $itemsarray); -$template->param(WEB_RESULTS => $webarray); -$template->param(SITE_RESULTS => $sitearray, +my @results = ( $dat, ); +foreach ( keys %{$dat} ) { + $template->param( "$_" => $dat->{$_} . "" ); +} + +my $reviews = getreviews( $biblionumber, 1 ); +foreach ( @$reviews ) { + my $borrower_number_review = $_->{borrowernumber}; + my $borrowerData = GetMember($borrower_number_review,'borrowernumber'); + # setting some borrower info into this hash + $_->{title} = $borrowerData->{'title'}; + $_->{surname} = $borrowerData->{'surname'}; + $_->{firstname} = $borrowerData->{'firstname'}; +} + +$template->param( + ITEM_RESULTS => \@items, + subscriptionsnumber => $subscriptionsnumber, + biblionumber => $biblionumber, + subscriptions => \@subs, + subscriptionsnumber => $subscriptionsnumber, + reviews => $reviews ); -output_html_with_http_headers $query, $cookie, $template->output; +## Amazon.com stuff +#not used unless preference set +if ( C4::Context->preference("AmazonContent") == 1 ) { + use C4::Amazon; + $dat->{'amazonisbn'} = $dat->{'isbn'}; + $dat->{'amazonisbn'} =~ s|-||g; + $template->param( amazonisbn => $dat->{amazonisbn} ); + + my $amazon_details = &get_amazon_details( $dat->{amazonisbn} ); + + foreach my $result ( @{ $amazon_details->{Details} } ) { + $template->param( item_description => $result->{ProductDescription} ); + $template->param( image => $result->{ImageUrlMedium} ); + $template->param( list_price => $result->{ListPrice} ); + $template->param( amazon_url => $result->{url} ); + } + + my @products; + my @reviews; + for my $details ( @{ $amazon_details->{Details} } ) { + next unless $details->{SimilarProducts}; + for my $product ( @{ $details->{SimilarProducts}->{Product} } ) { + push @products, +{ Product => $product }; + } + next unless $details->{Reviews}; + for my $product ( @{ $details->{Reviews}->{AvgCustomerRating} } ) { + $template->param( rating => $product * 20 ); + } + for my $reviews ( @{ $details->{Reviews}->{CustomerReview} } ) { + push @reviews, + +{ + Summary => $reviews->{Summary}, + Comment => $reviews->{Comment}, + }; + } + } + $template->param( SIMILAR_PRODUCTS => \@products ); + $template->param( AMAZONREVIEWS => \@reviews ); +} +output_html_with_http_headers $query, $cookie, $template->output;