159 lines
5.1 KiB
Perl
Executable file
159 lines
5.1 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
use strict;
|
|
require Exporter;
|
|
use CGI;
|
|
use C4::Search;
|
|
use C4::Auth;
|
|
use C4::Bull; #uses getsubscriptionfrom biblionumber
|
|
use C4::Interface::CGI::Output;
|
|
use HTML::Template;
|
|
use C4::Biblio;
|
|
use C4::SearchMarc;
|
|
use C4::Amazon;
|
|
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);
|
|
|
|
|
|
# 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 $subscriptionsnumber = getsubscriptionfrombiblionumber($biblionumber);
|
|
|
|
my @title;
|
|
$dat->{'count'}=@items;
|
|
my @author;
|
|
if ($dat->{'author'}){
|
|
my %authorpush;
|
|
$authorpush{author}=$dat->{'author'};
|
|
push @author, \%authorpush
|
|
}
|
|
$dat->{'additional'}=$addauthor->[0]->{'author'};
|
|
if ($dat->{'additional'}){
|
|
my %authorpush;
|
|
$authorpush{author} =$addauthor->[0]->{'author'};
|
|
push @author, \%authorpush
|
|
}
|
|
|
|
foreach my $word (split(" ", $dat->{'title'})){
|
|
unless (length($word) == 4){
|
|
$word =~s/\%//g
|
|
}
|
|
unless (C4::Context->stopwords->{uc($word)} or length($word)==1) {
|
|
my %titlepush;
|
|
$titlepush{title} =$word;
|
|
push @title, \%titlepush;
|
|
}#it's NOT a stopword => use it. Otherwise, ignore
|
|
}
|
|
|
|
for (my $i = 1; $i < $authorcount; $i++) {
|
|
$dat->{'additional'} .= " ; " . $addauthor->[$i]->{'author'};
|
|
|
|
my %authorpush;
|
|
$authorpush{author}=$addauthor->[$i]->{'author'};
|
|
push @author, \%authorpush
|
|
} # for
|
|
|
|
my $norequests = 1;
|
|
foreach my $itm (@items) {
|
|
$norequests = 0 unless $itm->{'notforloan'};
|
|
$itm->{$itm->{'publictype'}} = 1;
|
|
}
|
|
|
|
$template->param(norequests => $norequests);
|
|
|
|
## get notes and subjects from MARC record
|
|
my $marc = C4::Context->preference("marc");
|
|
if ($marc eq "yes") {
|
|
my $dbh = C4::Context->dbh;
|
|
my $bibid = &MARCfind_MARCbibid_from_oldbiblionumber($dbh,$biblionumber);
|
|
my $marcflavour = C4::Context->preference("marcflavour");
|
|
my $marcnotesarray = &getMARCnotes($dbh,$bibid,$marcflavour);
|
|
my $marcsubjctsarray = &getMARCsubjects($dbh,$bibid,$marcflavour);
|
|
|
|
$template->param(MARCNOTES => $marcnotesarray);
|
|
$template->param(MARCSUBJCTS => $marcsubjctsarray);
|
|
}
|
|
|
|
my @results = ($dat,);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $resultsarray=\@results;
|
|
my $itemsarray=\@items;
|
|
my $webarray=\@webbiblioitems;
|
|
my $sitearray=\@websites;
|
|
my $titlewords=\@title;
|
|
my $authorwords=\@author;
|
|
|
|
|
|
#coping with subscriptions
|
|
my $subscriptionsnumber = getsubscriptionfrombiblionumber($biblionumber);
|
|
my @subscriptions = getsubscriptions($dat->{title},$dat->{issn},$biblionumber);
|
|
my @subs;
|
|
foreach my $subscription (@subscriptions){
|
|
warn "subsid :".$subscription->{subscriptionid};
|
|
my %cell;
|
|
$cell{subscriptionid}= $subscription->{subscriptionid};
|
|
$cell{subscriptionnotes}= $subscription->{notes};
|
|
#get the three latest serials.
|
|
$cell{latestserials}=getlatestserials($subscription->{subscriptionid},3);
|
|
push @subs, \%cell;
|
|
}
|
|
|
|
$template->param(BIBLIO_RESULTS => $resultsarray,
|
|
ITEM_RESULTS => $itemsarray,
|
|
WEB_RESULTS => $webarray,
|
|
SITE_RESULTS => $sitearray,
|
|
subscriptionsnumber => $subscriptionsnumber,
|
|
LibraryName => C4::Context->preference("LibraryName"),
|
|
suggestion => C4::Context->preference("suggestion"),
|
|
virtualshelves => C4::Context->preference("virtualshelves"),
|
|
titlewords => $titlewords,
|
|
authorwords => $authorwords,
|
|
);
|
|
## Amazon.com stuff
|
|
=head
|
|
my $isbn=$dat->{'isbn'};
|
|
my $amazon_details = &get_amazon_details($isbn);
|
|
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);
|
|
}
|
|
for my $reviews ( @{ $details->{ Reviews }->{ CustomerReview } } ) {
|
|
push @reviews, +{ Summary => $reviews->{ Summary }, Comment => $reviews->{ Comment }, };
|
|
}
|
|
}
|
|
$template->param( SIMILAR_PRODUCTS => \@products );
|
|
$template->param( REVIEWS => \@reviews );
|
|
## End of Amazon Stuff
|
|
=cut
|
|
output_html_with_http_headers $query, $cookie, $template->output;
|