use C4::Tags qw(get_tags);
use C4::Dates qw/format_date/;
use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn get_biblio_from_xisbn);
-use C4::Amazon;
+use C4::External::Amazon;
use C4::Review;
use C4::Serials;
use C4::Members;
$template->param( biblionumber => $biblionumber );
# XSLT processing of some stuff
if (C4::Context->preference("XSLTDetailsDisplay") ) {
- my $newxmlrecord = XSLTParse4Display($biblionumber, $record, C4::Context->config('opachtdocs')."/prog/en/xslt/MARC21slim2OPACDetail.xsl");
+ my $newxmlrecord = XSLTParse4Display($biblionumber,$record,'Detail');
$template->param('XSLTBloc' => $newxmlrecord);
}
$itm->{'imageurl'} = getitemtypeimagelocation( 'opac', $itemtypes->{ $itm->{itype} }->{'imageurl'} );
$itm->{'description'} = $itemtypes->{ $itm->{itype} }->{'description'};
}
- foreach (qw(ccode enumchron copynumber itemnotes)) {
+ foreach (qw(ccode enumchron copynumber itemnotes uri)) {
$itemfields{$_} = 1 if ($itm->{$_});
}
RequestOnOpac => C4::Context->preference("RequestOnOpac"),
itemdata_ccode => $itemfields{ccode},
itemdata_enumchron => $itemfields{enumchron},
+ itemdata_uri => $itemfields{uri},
itemdata_copynumber => $itemfields{copynumber},
itemdata_itemnotes => $itemfields{itemnotes},
authorised_value_images => $biblio_authorised_value_images,
$template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products );
$template->param( AMAZON_EDITORIAL_REVIEWS => $editorial_reviews );
}
+
+# Babelthèque
+if ( C4::Context->preference("Babeltheque") ) {
+ $template->param(
+ Babeltheque => 1,
+ );
+}
+
# Shelf Browser Stuff
if (C4::Context->preference("OPACShelfBrowser")) {
# pick the first itemnumber unless one was selected by the user
## List of Previous Items
# order by cn_sort, which should include everything we need for ordering purposes (though not
# for limits, those need to be handled separately
- my $sth_shelfbrowse_previous = $dbh->prepare("
+ my $sth_shelfbrowse_previous;
+ if (defined $starting_location->{code}) {
+ $sth_shelfbrowse_previous = $dbh->prepare("
SELECT *
FROM items
WHERE
homebranch = ? AND location = ?
ORDER BY cn_sort DESC, itemnumber LIMIT 3
");
- $sth_shelfbrowse_previous->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code});
+ $sth_shelfbrowse_previous->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code});
+ } else {
+ $sth_shelfbrowse_previous = $dbh->prepare("
+ SELECT *
+ FROM items
+ WHERE
+ ((cn_sort = ? AND itemnumber < ?) OR cn_sort < ?) AND
+ homebranch = ?
+ ORDER BY cn_sort DESC, itemnumber LIMIT 3
+ ");
+ $sth_shelfbrowse_previous->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code});
+ }
my @previous_items;
while (my $this_item = $sth_shelfbrowse_previous->fetchrow_hashref()) {
my $sth_get_biblio = $dbh->prepare("SELECT biblio.*,biblioitems.isbn AS isbn FROM biblio LEFT JOIN biblioitems ON biblio.biblionumber=biblioitems.biblionumber WHERE biblio.biblionumber=?");
}
## List of Next Items; this also intentionally catches the current item
- my $sth_shelfbrowse_next = $dbh->prepare("
+ my $sth_shelfbrowse_next;
+ if (defined $starting_location->{code}) {
+ $sth_shelfbrowse_next = $dbh->prepare("
SELECT *
FROM items
WHERE
homebranch = ? AND location = ?
ORDER BY cn_sort, itemnumber LIMIT 3
");
- $sth_shelfbrowse_next->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code});
+ $sth_shelfbrowse_next->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code});
+ }
+ else {
+ $sth_shelfbrowse_next = $dbh->prepare("
+ SELECT *
+ FROM items
+ WHERE
+ ((cn_sort = ? AND itemnumber >= ?) OR cn_sort > ?) AND
+ homebranch = ?
+ ORDER BY cn_sort, itemnumber LIMIT 3
+ ");
+ $sth_shelfbrowse_next->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code});
+ }
my @next_items;
while (my $this_item = $sth_shelfbrowse_next->fetchrow_hashref()) {
my $sth_get_biblio = $dbh->prepare("SELECT biblio.*,biblioitems.isbn AS isbn FROM biblio LEFT JOIN biblioitems ON biblio.biblionumber=biblioitems.biblionumber WHERE biblio.biblionumber=?");
}
push @next_items, $this_item;
}
-
+
+
# alas, these won't auto-vivify, see http://www.perlmonks.org/?node_id=508481
my $shelfbrowser_next_itemnumber = $next_items[-1]->{itemnumber} if @next_items;
my $shelfbrowser_next_biblionumber = $next_items[-1]->{biblionumber} if @next_items;