use C4::Items;
use C4::Circulation;
use C4::Tags qw(get_tags);
-use C4::Dates qw/format_date/;
use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
use C4::External::Amazon;
use C4::External::Syndetics qw(get_syndetics_index get_syndetics_summary get_syndetics_toc get_syndetics_excerpt get_syndetics_reviews get_syndetics_anotes );
use C4::VirtualShelves;
use C4::XSLT;
use C4::ShelfBrowser;
+use C4::Reserves;
use C4::Charset;
use MARC::Record;
use MARC::Field;
use List::MoreUtils qw/any none/;
+use C4::Images;
+use Koha::DateUtils;
BEGIN {
if (C4::Context->preference('BakerTaylorEnabled')) {
my $biblionumber = $query->param('biblionumber') || $query->param('bib');
+my $record = GetMarcBiblio($biblionumber);
+if ( ! $record ) {
+ print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
+ exit;
+}
+$template->param( biblionumber => $biblionumber );
+
+# get biblionumbers stored in the cart
+my @cart_list;
+
+if($query->cookie("bib_list")){
+ my $cart_list = $query->cookie("bib_list");
+ @cart_list = split(/\//, $cart_list);
+ if ( grep {$_ eq $biblionumber} @cart_list) {
+ $template->param( incart => 1 );
+ }
+}
+
+
+SetUTF8Flag($record);
+
+# XSLT processing of some stuff
+if (C4::Context->preference("OPACXSLTDetailsDisplay") ) {
+ $template->param( 'XSLTBloc' => XSLTParse4Display($biblionumber, $record, 'Detail', 'opac') );
+}
+
+
# We look for the busc param to build the simple paging from the search
my $session = get_session($query->cookie("CGISESSID"));
my %paging = (previous => {}, next => {});
$template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') );
$template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) );
-my $record = GetMarcBiblio($biblionumber);
-if ( ! $record ) {
- print $query->redirect("/cgi-bin/koha/errors/404.pl");
- exit;
-}
-$template->param( biblionumber => $biblionumber );
-SetUTF8Flag($record);
-
-# XSLT processing of some stuff
-if (C4::Context->preference("OPACXSLTDetailsDisplay") ) {
- $template->param( 'XSLTBloc' => XSLTParse4Display($biblionumber, $record, 'Detail', 'opac') );
-}
$template->param('OPACShowCheckoutName' => C4::Context->preference("OPACShowCheckoutName") );
# change back when ive fixed request.pl
$cell{subscriptionnotes} = $subscription->{notes};
$cell{missinglist} = $subscription->{missinglist};
$cell{opacnote} = $subscription->{opacnote};
- $cell{histstartdate} = format_date($subscription->{histstartdate});
- $cell{histenddate} = format_date($subscription->{histenddate});
+ $cell{histstartdate} = $subscription->{histstartdate};
+ $cell{histenddate} = $subscription->{histenddate};
$cell{branchcode} = $subscription->{branchcode};
$cell{branchname} = GetBranchName($subscription->{branchcode});
$cell{hasalert} = $subscription->{hasalert};
# I can't actually find any case in which this is defined. --amoore 2008-12-09
$itm->{ $itm->{'publictype'} } = 1;
}
- $itm->{datedue} = format_date($itm->{datedue});
- $itm->{datelastseen} = format_date($itm->{datelastseen});
# get collection code description, too
if ( my $ccode = $itm->{'ccode'} ) {
$itm->{'lostimageurl'} = $lostimageinfo->{ 'imageurl' };
$itm->{'lostimagelabel'} = $lostimageinfo->{ 'label' };
}
-
- if( $itm->{'count_reserves'}){
- if( $itm->{'count_reserves'} eq "Waiting"){ $itm->{'waiting'} = 1; }
- if( $itm->{'count_reserves'} eq "Reserved"){ $itm->{'onhold'} = 1; }
- }
+ my ($reserve_status) = C4::Reserves::CheckReserves($itm->{itemnumber});
+ if( $reserve_status eq "Waiting"){ $itm->{'waiting'} = 1; }
+ if( $reserve_status eq "Reserved"){ $itm->{'onhold'} = 1; }
my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($itm->{itemnumber});
if ( defined( $transfertwhen ) && $transfertwhen ne '' ) {
- $itm->{transfertwhen} = format_date($transfertwhen);
+ $itm->{transfertwhen} = $transfertwhen;
$itm->{transfertfrom} = $branches->{$transfertfrom}{branchname};
$itm->{transfertto} = $branches->{$transfertto}{branchname};
}
# COinS format FIXME: for books Only
$template->param(
- ocoins => GetCOinSBiblio($biblionumber),
+ ocoins => GetCOinSBiblio($record),
);
my $libravatar_enabled = 0;
-eval 'use Libravatar::URL';
-if (!$@ and C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
- $libravatar_enabled = 1;
+if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
+ eval {
+ require Libravatar::URL;
+ Libravatar::URL->import();
+ };
+ if (!$@ ) {
+ $libravatar_enabled = 1;
+ }
}
my $reviews = getreviews( $biblionumber, 1 );
}
$_->{userid} = $borrowerData->{'userid'};
$_->{cardnumber} = $borrowerData->{'cardnumber'};
- $_->{datereviewed} = format_date($_->{datereviewed});
if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
$_->{your_comment} = 1;
$loggedincommenter = 1;
serialcollections => \@serialcollections);
}
+# Local cover Images stuff
+if (C4::Context->preference("OPACLocalCoverImages")){
+ $template->param(OPACLocalCoverImages => 1);
+}
+
# Amazon.com Stuff
if ( C4::Context->preference("OPACAmazonEnabled") ) {
$template->param( AmazonTld => get_amazon_tld() );
if ( $amazon_reviews ) {
my $item = $amazon_details->{Items}->{Item}->[0];
my $customer_reviews = \@{ $item->{CustomerReviews}->{Review} };
- for my $one_review ( @$customer_reviews ) {
- $one_review->{Date} = format_date($one_review->{Date});
- }
my $editorial_reviews = \@{ $item->{EditorialReviews}->{EditorialReview} };
my $average_rating = $item->{CustomerReviews}->{AverageRating} || 0;
$template->param( amazon_average_rating => $average_rating * 20);
if ( C4::Context->preference("Babeltheque") ) {
$template->param(
Babeltheque => 1,
+ Babeltheque_url_js => C4::Context->preference("Babeltheque_url_js"),
);
}
+# Social Networks
+if ( C4::Context->preference( "SocialNetworks" ) ) {
+ $template->param( current_url => C4::Context->preference('OPACBaseURL') . "/cgi-bin/koha/opac-detail.pl?biblionumber=$biblionumber" );
+ $template->param( SocialNetworks => 1 );
+}
+
# Shelf Browser Stuff
if (C4::Context->preference("OPACShelfBrowser")) {
# pick the first itemnumber unless one was selected by the user
$template->param(covernewwindow => 'false');
}
+#Export options
+my $OpacExportOptions=C4::Context->preference("OpacExportOptions");
+my @export_options = split(/\|/,$OpacExportOptions);
+$template->{VARS}->{'export_options'} = \@export_options;
+
#Search for title in links
-my $marccontrolnumber = GetMarcControlnumber ($record, $marcflavour);
+my $marccontrolnumber = GetMarcControlnumber ($record, $marcflavour);
+my $marcissns = GetMarcISSN ( $record, $marcflavour );
+my $issn = $marcissns->[0] || '';
if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
$dat->{author} ? $search_for_title =~ s/{AUTHOR}/$dat->{author}/g : $search_for_title =~ s/{AUTHOR}//g;
$dat->{title} =~ s/\s+$//; # remove trailing space
$dat->{title} ? $search_for_title =~ s/{TITLE}/$dat->{title}/g : $search_for_title =~ s/{TITLE}//g;
$isbn ? $search_for_title =~ s/{ISBN}/$isbn/g : $search_for_title =~ s/{ISBN}//g;
+ $issn ? $search_for_title =~ s/{ISSN}/$issn/g : $search_for_title =~ s/{ISSN}//g;
$marccontrolnumber ? $search_for_title =~ s/{CONTROLNUMBER}/$marccontrolnumber/g : $search_for_title =~ s/{CONTROLNUMBER}//g;
$search_for_title =~ s/{BIBLIONUMBER}/$biblionumber/g;
- $template->param('OPACSearchForTitleIn' => $search_for_title);
+ $template->param('OPACSearchForTitleIn' => $search_for_title);
}
# We try to select the best default tab to show, according to what
? 'serialcollection' : 'subscription';
$template->param('defaulttab' => $defaulttab);
+if (C4::Context->preference('OPACLocalCoverImages') == 1) {
+ my @images = ListImagesForBiblio($biblionumber);
+ $template->{VARS}->{localimages} = \@images;
+}
+
output_html_with_http_headers $query, $cookie, $template->output;