+ }
+ my $editorial_reviews = \@{$amazon_details->{Items}->{Item}->{EditorialReviews}->{EditorialReview}};
+ my $average_rating = $amazon_details->{Items}->{Item}->{CustomerReviews}->{AverageRating} || 0;
+ $template->param( OPACAmazonSimilarItems => $similar_products_exist );
+ $template->param( amazon_average_rating => $average_rating * 20);
+ $template->param( AMAZON_CUSTOMER_REVIEWS => $customer_reviews );
+ $template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products );
+ $template->param( AMAZON_EDITORIAL_REVIEWS => $editorial_reviews );
+}
+# Shelf Browser Stuff
+if (C4::Context->preference("OPACShelfBrowser")) {
+ # pick the first itemnumber unless one was selected by the user
+ my $starting_itemnumber = $query->param('shelfbrowse_itemnumber'); # || $items[0]->{itemnumber};
+ $template->param( OpenOPACShelfBrowser => 1) if $starting_itemnumber;
+ # find the right cn_sort value for this item
+ my ($starting_cn_sort, $starting_homebranch, $starting_location);
+ my $sth_get_cn_sort = $dbh->prepare("SELECT cn_sort,homebranch,location from items where itemnumber=?");
+ $sth_get_cn_sort->execute($starting_itemnumber);
+ while (my $result = $sth_get_cn_sort->fetchrow_hashref()) {
+ $starting_cn_sort = $result->{'cn_sort'};
+ $starting_homebranch->{code} = $result->{'homebranch'};
+ $starting_homebranch->{description} = $branches->{$result->{'homebranch'}}{branchname};
+ $starting_location->{code} = $result->{'location'};
+ $starting_location->{description} = GetAuthorisedValueDesc('','', $result->{'location'} ,'','','LOC');
+
+ }
+
+ ## 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;
+ if (defined $starting_location->{code}) {
+ $sth_shelfbrowse_previous = $dbh->prepare("
+ SELECT *
+ FROM items
+ WHERE
+ ((cn_sort = ? AND itemnumber < ?) OR cn_sort < ?) AND
+ 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});
+ } 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=?");
+ $sth_get_biblio->execute($this_item->{biblionumber});
+ while (my $this_biblio = $sth_get_biblio->fetchrow_hashref()) {
+ $this_item->{'title'} = $this_biblio->{'title'};
+ if ($clean2 = isbn_cleanup($this_biblio->{'isbn'})) {
+ $this_item->{'isbn'} = $clean2;
+ } else {
+ $this_item->{'isbn'} = $this_biblio->{'isbn'};
+ }