+ $template->param( OPACAmazonSimilarItems => $similar_products_exist );
+ $template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products );
+ }
+}
+
+my $syndetics_elements;
+
+if ( C4::Context->preference("SyndeticsEnabled") ) {
+ eval {
+ $syndetics_elements = &get_syndetics_index($isbn,$upc,$oclc);
+ for my $element (values %$syndetics_elements) {
+ $template->param("Syndetics$element"."Exists" => 1 );
+ #warn "Exists: "."Syndetics$element"."Exists";
+ }
+ };
+ warn $@ if $@;
+}
+
+if ( C4::Context->preference("SyndeticsEnabled")
+ && C4::Context->preference("SyndeticsSummary")
+ && ( exists($syndetics_elements->{'SUMMARY'}) || exists($syndetics_elements->{'AVSUMMARY'}) ) ) {
+ eval {
+ my $syndetics_summary = &get_syndetics_summary($isbn,$upc,$oclc, $syndetics_elements);
+ $template->param( SYNDETICS_SUMMARY => $syndetics_summary );
+ };
+ warn $@ if $@;
+
+}
+
+if ( C4::Context->preference("SyndeticsEnabled")
+ && C4::Context->preference("SyndeticsTOC")
+ && exists($syndetics_elements->{'TOC'}) ) {
+ eval {
+ my $syndetics_toc = &get_syndetics_toc($isbn,$upc,$oclc);
+ $template->param( SYNDETICS_TOC => $syndetics_toc );
+ };
+ warn $@ if $@;
+}
+
+if ( C4::Context->preference("SyndeticsEnabled")
+ && C4::Context->preference("SyndeticsExcerpt")
+ && exists($syndetics_elements->{'DBCHAPTER'}) ) {
+ eval {
+ my $syndetics_excerpt = &get_syndetics_excerpt($isbn,$upc,$oclc);
+ $template->param( SYNDETICS_EXCERPT => $syndetics_excerpt );
+ };
+ warn $@ if $@;
+}
+
+if ( C4::Context->preference("SyndeticsEnabled")
+ && C4::Context->preference("SyndeticsReviews")) {
+ eval {
+ my $syndetics_reviews = &get_syndetics_reviews($isbn,$upc,$oclc,$syndetics_elements);
+ $template->param( SYNDETICS_REVIEWS => $syndetics_reviews );
+ };
+ warn $@ if $@;
+}
+
+if ( C4::Context->preference("SyndeticsEnabled")
+ && C4::Context->preference("SyndeticsAuthorNotes")
+ && exists($syndetics_elements->{'ANOTES'}) ) {
+ eval {
+ my $syndetics_anotes = &get_syndetics_anotes($isbn,$upc,$oclc);
+ $template->param( SYNDETICS_ANOTES => $syndetics_anotes );
+ };
+ warn $@ if $@;
+}
+
+# LibraryThingForLibraries ID Code and Tabbed View Option
+if( C4::Context->preference('LibraryThingForLibrariesEnabled') )
+{
+$template->param(LibraryThingForLibrariesID =>
+C4::Context->preference('LibraryThingForLibrariesID') );
+$template->param(LibraryThingForLibrariesTabbedView =>
+C4::Context->preference('LibraryThingForLibrariesTabbedView') );
+}
+
+
+# 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
+ 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'};
+ my $this_record = GetMarcBiblio($this_biblio->{'biblionumber'});
+ $this_item->{'browser_normalized_upc'} = GetNormalizedUPC($this_record,$marcflavour);
+ $this_item->{'browser_normalized_oclc'} = GetNormalizedOCLCNumber($this_record,$marcflavour);
+ $this_item->{'browser_normalized_isbn'} = GetNormalizedISBN(undef,$this_record,$marcflavour);