From: Joshua Ferraro <[email protected]> This patch also includes a new function to retrieve the index page from Syndetics and parse it for available content prior to retrieving content; this is done to speed up syndetics content by not retrieving content that doesn't exist for an item. However, Syndetics continues to be a very slow service compared to Amazon.com and other enhanced content services
Signed-off-by: Daniel Sweeney <[email protected]> --- C4/Auth.pm | 3 + C4/External/Syndetics.pm | 242 +++++++++++++------ admin/systempreferences.pl | 8 +- installer/data/mysql/updatedatabase.pl | 6 + .../opac-tmpl/prog/en/modules/opac-detail.tmpl | 38 +++- opac/opac-detail.pl | 41 +++- 6 files changed, 249 insertions(+), 89 deletions(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index 1d5a9b1..fef2242 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -277,6 +277,9 @@ sub get_template_and_user { SyndeticsEditions => C4::Context->preference("SyndeticsEditions"), SyndeticsExcerpt => C4::Context->preference("SyndeticsExcerpt"), SyndeticsReviews => C4::Context->preference("SyndeticsReviews"), + SyndeticsAuthorNotes => C4::Context->preference("SyndeticsAuthorNotes"), + SyndeticsAwards => C4::Context->preference("SyndeticsAwards"), + SyndeticsSeries => C4::Context->preference("SyndeticsSeries"), ); if ( $in->{'type'} eq "intranet" ) { diff --git a/C4/External/Syndetics.pm b/C4/External/Syndetics.pm index b9f480b..b54a6d5 100644 --- a/C4/External/Syndetics.pm +++ b/C4/External/Syndetics.pm @@ -32,11 +32,13 @@ BEGIN { $VERSION = 0.03; @ISA = qw(Exporter); @EXPORT = qw( + &get_syndetics_index &get_syndetics_summary &get_syndetics_toc - &get_syndetics_editions - &get_syndetics_excerpt - &get_syndetics_reviews + &get_syndetics_editions + &get_syndetics_excerpt + &get_syndetics_reviews + &get_syndetics_anotes ); } @@ -60,6 +62,41 @@ Get Summary data from Syndetics =cut +sub get_syndetics_index { + my ( $isbn ) = @_; + + #normalize the ISBN + $isbn = _normalize_match_point ($isbn); + + # grab the AWSAccessKeyId: mine is '0V5RRRRJZ3HR2RQFNHR2' + my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); + + my $url = "http://syndetics.com/index.aspx?isbn=$isbn/INDEX.XML&client=$syndetics_client_code&type=xw10"; + my $ua = LWP::UserAgent->new; + $ua->timeout(10); + $ua->env_proxy; + my $response = $ua->get($url); + unless ($response->content_type =~ /xml/) { + return; + } + + my $content = $response->content; + warn "could not retrieve $url" unless $content; + my $xmlsimple = XML::Simple->new(); + $response = $xmlsimple->XMLin( + $content, + ) unless !$content; + + my $syndetics_elements; + for my $available_type ('SUMMARY','TOC','FICTION','AWARDS1','SERIES1','SPSUMMARY','SPREVIEW','AVSUMMARY','DBCHAPTER','LJREVIEW','PWREVIEW','SLJREVIEW','CHREVIEW','BLREVIEW','HBREVIEW','KIREVIEW','CRITICASREVIEW','ANOTES') { + if (exists $response->{$available_type} && $response->{$available_type} =~ /$available_type/) { + $syndetics_elements->{$available_type} = $available_type; + #warn "RESPONSE: $available_type : $response->{$available_type}"; + } + } + return $syndetics_elements if $syndetics_elements; +} + sub get_syndetics_summary { my ( $isbn ) = @_; @@ -70,12 +107,12 @@ sub get_syndetics_summary { my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); my $url = "http://syndetics.com/index.aspx?isbn=$isbn/SUMMARY.XML&client=$syndetics_client_code&type=xw10"; - my $ua = LWP::UserAgent->new; + my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; - my $response = $ua->get($url); - unless ($response->content_type =~ /xml/) { - return; + my $response = $ua->get($url); + unless ($response->content_type =~ /xml/) { + return; } my $content = $response->content; @@ -86,9 +123,9 @@ sub get_syndetics_summary { $content, forcearray => [ qw(Fld520) ], ) unless !$content; - # manipulate response USMARC VarFlds VarDFlds Notes Fld520 a - my $summary; - $summary = \...@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}} if $response; + # manipulate response USMARC VarFlds VarDFlds Notes Fld520 a + my $summary; + $summary = \...@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}} if $response; return $summary if $summary; } @@ -102,16 +139,16 @@ sub get_syndetics_toc { my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); my $url = "http://syndetics.com/index.aspx?isbn=$isbn/TOC.XML&client=$syndetics_client_code&type=xw10"; - my $ua = LWP::UserAgent->new; + my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; - my $response = $ua->get($url); - unless ($response->content_type =~ /xml/) { - return; - } + my $response = $ua->get($url); + unless ($response->content_type =~ /xml/) { + return; + } - my $content = $response->content; + my $content = $response->content; warn "could not retrieve $url" unless $content; my $xmlsimple = XML::Simple->new(); $response = $xmlsimple->XMLin( @@ -120,7 +157,7 @@ sub get_syndetics_toc { ) unless !$content; # manipulate response USMARC VarFlds VarDFlds Notes Fld520 a my $toc; - $toc = \...@{$response->{VarFlds}->{VarDFlds}->{SSIFlds}->{Fld970}} if $response; + $toc = \...@{$response->{VarFlds}->{VarDFlds}->{SSIFlds}->{Fld970}} if $response; return $toc if $toc; } @@ -134,15 +171,15 @@ sub get_syndetics_excerpt { my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); my $url = "http://syndetics.com/index.aspx?isbn=$isbn/DBCHAPTER.XML&client=$syndetics_client_code&type=xw10"; - my $ua = LWP::UserAgent->new; + my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; my $response = $ua->get($url); unless ($response->content_type =~ /xml/) { - return; - } + return; + } - my $content = $response->content; + my $content = $response->content; warn "could not retrieve $url" unless $content; my $xmlsimple = XML::Simple->new(); $response = $xmlsimple->XMLin( @@ -156,63 +193,70 @@ sub get_syndetics_excerpt { } sub get_syndetics_reviews { - my ( $isbn ) = @_; + my ( $isbn, $syndetics_elements ) = @_; #normalize the ISBN $isbn = _normalize_match_point ($isbn); # grab the AWSAccessKeyId: mine is '0V5RRRRJZ3HR2RQFNHR2' my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); - my @reviews; - my $review_sources = [ - {title => 'Library Journal Review', file => 'LJREVIEW.XML'}, - {title => 'Publishers Weekly Review', file => 'PWREVIEW.XML'}, - {title => 'School Library Journal Review', file => 'SLJREVIEW.XML'}, - {title => 'CHOICE Review', file => 'CHREVIEW.XML'}, - {title => 'Booklist Review', file => 'BLREVIEW.XML'}, - {title => 'Horn Book Review', file => 'HBREVIEW.XML'}, - {title => 'Kirkus Book Review', file => 'KIRKREVIEW.XML'}, - {title => 'Criticas Review', file => 'CRITICASREVIEW.XML'} - ]; - - for my $source (@$review_sources) { - my $url = "http://syndetics.com/index.aspx?isbn=$isbn/$source->{file}&client=$syndetics_client_code&type=xw10"; - - my $ua = LWP::UserAgent->new; - $ua->timeout(10); - $ua->env_proxy; + my @reviews; + my $review_sources = [ + {title => 'Library Journal Review', file => 'LJREVIEW.XML', element => 'LJREVIEW'}, + {title => 'Publishers Weekly Review', file => 'PWREVIEW.XML', element => 'PWREVIEW'}, + {title => 'School Library Journal Review', file => 'SLJREVIEW.XML', element => 'SLJREVIEW'}, + {title => 'CHOICE Review', file => 'CHREVIEW.XML', element => 'CHREVIEW'}, + {title => 'Booklist Review', file => 'BLREVIEW.XML', element => 'BLREVIEW'}, + {title => 'Horn Book Review', file => 'HBREVIEW.XML', element => 'HBREVIEW'}, + {title => 'Kirkus Book Review', file => 'KIREVIEW.XML', element => 'KIREVIEW'}, + {title => 'Criticas Review', file => 'CRITICASREVIEW.XML', element => 'CRITICASREVIEW'}, + {title => 'Spanish Review', file => 'SPREVIEW.XML', element => 'SPREVIEW'}, + ]; + + for my $source (@$review_sources) { + if ($syndetics_elements->{$source->{element}} and $source->{element} =~ $syndetics_elements->{$source->{element}}) { + + } else { + #warn "Skipping $source->{element} doesn't match $syndetics_elements->{$source->{element}} \n"; + next; + } + my $url = "http://syndetics.com/index.aspx?isbn=$isbn/$source->{file}&client=$syndetics_client_code&type=xw10"; + + my $ua = LWP::UserAgent->new; + $ua->timeout(10); + $ua->env_proxy; - my $response = $ua->get($url); - unless ($response->content_type =~ /xml/) { - next; - } - - my $content = $response->content; - warn "could not retrieve $url" unless $content; - my $xmlsimple = XML::Simple->new(); - eval { - $response = $xmlsimple->XMLin( - $content, - forcearray => [ qw(Fld520) ], - ) unless !$content; - }; - - # This particular review deserializes differently - if ($source->{file} =~ /BLREVIEW.XML/) { - for my $subfield_a (@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}}) { - my @content; - for my $content (@{$subfield_a->{a}->{content}}) { - push @content, {content => $content}; - } - push @reviews, {title => $source->{title}, reviews => \...@content}; #[ {content => $content} ]}; - } - } - else { - push @reviews, {title => $source->{title}, reviews => \...@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}}} unless $@; - } - - } - return \...@reviews; + my $response = $ua->get($url); + unless ($response->content_type =~ /xml/) { + next; + } + + my $content = $response->content; + warn "could not retrieve $url" unless $content; + my $xmlsimple = XML::Simple->new(); + eval { + $response = $xmlsimple->XMLin( + $content, + ForceContent => 1, + forcearray => [ qw(Fld520) ] + ) unless !$content; + }; + + for my $subfield_a (@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}}) { + my @content; + # this is absurd, but sometimes this data serializes differently + if(ref($subfield_a->{a}->{content}) eq 'ARRAY') { + for my $content (@{$subfield_a->{a}->{content}}) { + push @content, {content => $content}; + } + } + else { + push @content, {content => $subfield_a->{a}->{content}}; + } + push @reviews, {title => $source->{title}, reviews => \...@content}; + } + } + return \...@reviews; } sub get_syndetics_editions { @@ -225,7 +269,7 @@ sub get_syndetics_editions { my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); my $url = "http://syndetics.com/index.aspx?isbn=$isbn/FICTION.XML&client=$syndetics_client_code&type=xw10"; - my $ua = LWP::UserAgent->new; + my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; @@ -244,16 +288,60 @@ sub get_syndetics_editions { ) unless !$content; # manipulate response USMARC VarFlds VarDFlds Notes Fld520 a my $similar_items; - $similar_items = \...@{$response->{VarFlds}->{VarDFlds}->{NumbCode}->{Fld020}} if $response; + $similar_items = \...@{$response->{VarFlds}->{VarDFlds}->{NumbCode}->{Fld020}} if $response; return $similar_items if $similar_items; } +sub get_syndetics_anotes { + my ( $isbn ) = @_; + + #normalize the ISBN + $isbn = _normalize_match_point ($isbn); + + # grab the AWSAccessKeyId: mine is '0V5RRRRJZ3HR2RQFNHR2' + my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode'); + + my $url = "http://syndetics.com/index.aspx?isbn=$isbn/ANOTES.XML&client=$syndetics_client_code&type=xw10"; + my $ua = LWP::UserAgent->new; + $ua->timeout(10); + $ua->env_proxy; + + my $response = $ua->get($url); + unless ($response->content_type =~ /xml/) { + return; + } + + my $content = $response->content; + + warn "could not retrieve $url" unless $content; + my $xmlsimple = XML::Simple->new(); + $response = $xmlsimple->XMLin( + $content, + forcearray => [ qw(Fld980) ], + ForceContent => 1, + ) unless !$content; + my @anotes; + for my $fld980 (@{$response->{VarFlds}->{VarDFlds}->{SSIFlds}->{Fld980}}) { + # this is absurd, but sometimes this data serializes differently + if(ref($fld980->{a}->{content}) eq 'ARRAY') { + for my $content (@{$fld980->{a}->{content}}) { + push @anotes, {content => $content}; + + } + } + else { + push @anotes, {content => $fld980->{a}->{content}}; + } + } + return \...@anotes; +} + sub _normalize_match_point { - my $match_point = shift; - (my $normalized_match_point) = $match_point =~ /([\d-]*[X]*)/; - $normalized_match_point =~ s/-//g; + my $match_point = shift; + (my $normalized_match_point) = $match_point =~ /([\d-]*[X]*)/; + $normalized_match_point =~ s/-//g; - return $normalized_match_point; + return $normalized_match_point; } 1; diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl index 8380460..32693d7 100755 --- a/admin/systempreferences.pl +++ b/admin/systempreferences.pl @@ -237,8 +237,12 @@ $tabsysprefs{SyndeticsCoverImages} = 'EnhancedContent'; $tabsysprefs{SyndeticsTOC} = 'EnhancedContent'; $tabsysprefs{SyndeticsSummary} = 'EnhancedContent'; $tabsysprefs{SyndeticsEditions} = 'EnhancedContent'; -$tabsysprefs{SyndeticsExcerpt} = 'EnhancedContent'; -$tabsysprefs{SyndeticsReviews} = 'EnhancedContent'; +$tabsysprefs{SyndeticsExcerpt} = 'EnhancedContent'; +$tabsysprefs{SyndeticsReviews} = 'EnhancedContent'; +$tabsysprefs{SyndeticsAuthorNotes} = 'EnhancedContent'; +$tabsysprefs{SyndeticsAwards} = 'EnhancedContent'; +$tabsysprefs{SyndeticsSeries} = 'EnhancedContent'; + # FRBR $tabsysprefs{FRBRizeEditions} = "EnhancedContent"; diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 5413711..231c949 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -2238,6 +2238,12 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsReviews', '0', 'Display Reviews on OPAC from Syndetics','','YesNo')"); + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsAuthorNotes', '0', 'Display Notes about the Author on OPAC from Syndetics','','YesNo')"); + + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsAwards', '0', 'Display Awards on OPAC from Syndetics','','YesNo')"); + + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SyndeticsSeries', '0', 'Display Series information on OPAC from Syndetics','','YesNo')"); + print "Upgrade to $DBversion done (added Syndetics Enhanced Content system preferences)\n"; SetVersion ($DBversion); } diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl index 256d850..920406e 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl @@ -214,6 +214,17 @@ </div> <!-- /TMPL_IF --> + <!-- TMPL_IF NAME="SyndeticsEnabled" --><!-- TMPL_IF NAME="SyndeticsSeries" --><!-- TMPL_IF NAME="SyndeticsSERIES1Exists" --> + <span class="results_summary"> + <span class="label">Series Information:</span> <a target="_blank" href="http://syndetics.com/ffseries.aspx?isbn=<!-- TMPL_VAR NAME="amazonisbn" -->&type=series&num=1&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" -->">Click to open in new window</a> + </span> + <!-- /TMPL_IF --><!-- /TMPL_IF --> + <!-- TMPL_IF NAME="SyndeticsAwards" --><!-- TMPL_IF NAME="SyndeticsAWARDS1Exists" --> + <span class="results_summary"> + <span class="label">Awards:</span> <a target="_blank" href="http://syndetics.com/ffawards.aspx?isbn=<!-- TMPL_VAR NAME="amazonisbn" -->&type=awards&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" -->">Click to open in new window</a> + </span> + <!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF --> + <!-- TMPL_IF NAME="BakerTaylorContentURL" --> <span class="results_summary"> <span class="label">Enhanced Content:</span><!-- TMPL_IF NAME="OPACURLOpenInNewWindow" --><a href="<!-- TMPL_VAR NAME="BakerTaylorContentURL" ESCAPE="HTML" -->" target="_blank">Content Cafe</a><!-- TMPL_ELSE --><a href="<!-- TMPL_VAR NAME="BakerTaylorContentURL" ESCAPE="HTML" -->">Content Cafe</a><!-- /TMPL_IF --> @@ -231,12 +242,17 @@ <!-- TMPL_IF NAME="SYNDETICS_TOC" --> <li> <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#toc">TOC</a></li> <!-- /TMPL_IF --> +<!-- TMPL_IF NAME="SyndeticsEnabled" --> <!-- TMPL_IF NAME="SyndeticsExcerpt" --><!-- TMPL_IF NAME="SYNDETICS_EXCERPT" --> <li> <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#excerpt">Excerpt</a></li> <!-- /TMPL_IF --><!-- /TMPL_IF --> <!-- TMPL_IF NAME="SyndeticsReviews" --><!-- TMPL_IF NAME="SYNDETICS_REVIEWS" --> <li> <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#reviews">Reviews</a></li> <!-- /TMPL_IF --><!-- /TMPL_IF --> +<!-- TMPL_IF NAME="SyndeticsAuthorNotes" --><!-- TMPL_IF NAME="SYNDETICS_ANOTES" --> + <li> <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#anotes">About the Author</a></li> +<!-- /TMPL_IF --><!-- /TMPL_IF --> +<!-- /TMPL_IF --> <!-- TMPL_IF name="subscriptionsnumber" --><li> <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#subscriptions">Subscriptions</a> </li><!-- /TMPL_IF --> @@ -376,14 +392,15 @@ <!-- /TMPL_IF --> <!-- /TMPL_LOOP --> <!-- /TMPL_IF--> - -<!-- TMPL_IF NAME="SyndeticsSummary" --> +<!-- TMPL_IF NAME="SyndeticsEnabled" --> +<!-- TMPL_IF NAME="SyndeticsSummary" --><!-- TMPL_IF NAME="SyndeticsSUMMARYExists" --> <!-- TMPL_LOOP NAME="SYNDETICS_SUMMARY" --> <!-- TMPL_IF NAME="a" --> - <h4>From Syndetics:</h4> + <h4>Enhanced Description:</h4> <p><!-- TMPL_VAR NAME="a" --></p> <!-- /TMPL_IF --> <!-- /TMPL_LOOP --> +<!-- /TMPL_IF --><!-- /TMPL_IF --> <!-- /TMPL_IF --> <!-- TMPL_IF name="MARCNOTES" --> @@ -397,7 +414,7 @@ <!-- /TMPL_IF --> </div> </div> - +<!-- TMPL_IF NAME="SyndeticsEnabled" --> <div id="toc"> <div class="content_set"> <!-- TMPL_IF NAME="SyndeticsTOC" --><!-- TMPL_IF NAME="SYNDETICS_TOC" --> @@ -439,6 +456,19 @@ </div> </div> +<div id="anotes"> +<div class="content_set"> +<!-- TMPL_IF NAME="SyndeticsAuthorNotes" --><!-- TMPL_IF NAME="SYNDETICS_ANOTES" --> +<!-- TMPL_LOOP NAME="SYNDETICS_ANOTES" --> + <!-- TMPL_IF NAME="content" --> + <!-- TMPL_VAR NAME="content" --> + <!-- /TMPL_IF --> +<!-- /TMPL_LOOP --> +<!-- /TMPL_IF --><!-- /TMPL_IF --> +</div> +</div> + +<!-- /TMPL_IF --> <!-- TMPL_IF name="subscriptionsnumber" --> <div id="subscriptions"> <h2>This is a serial subscription</h2> diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 0964647..0a46fa7 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -33,7 +33,7 @@ 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::External::Amazon; -use C4::External::Syndetics qw(get_syndetics_summary get_syndetics_toc get_syndetics_excerpt get_syndetics_reviews ); +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::Review; use C4::Serials; use C4::Members; @@ -291,7 +291,21 @@ if ( C4::Context->preference("OPACAmazonContent") == 1 ) { $template->param( AMAZON_EDITORIAL_REVIEWS => $editorial_reviews ); } -if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("SyndeticsSummary") ) { +my $syndetics_elements; +if ( C4::Context->preference("SyndeticsEnabled") ) { + eval { + $syndetics_elements = &get_syndetics_index($xisbn); + 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") + && $syndetics_elements->{'SUMMARY'} =~ /SUMMARY/) { eval { my $syndetics_summary = &get_syndetics_summary($xisbn); $template->param( SYNDETICS_SUMMARY => $syndetics_summary ); @@ -300,7 +314,9 @@ if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("Syn } -if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("SyndeticsTOC") ) { +if ( C4::Context->preference("SyndeticsEnabled") + && C4::Context->preference("SyndeticsTOC") + && $syndetics_elements->{'TOC'} =~ /TOC/) { eval { my $syndetics_toc = &get_syndetics_toc($xisbn); $template->param( SYNDETICS_TOC => $syndetics_toc ); @@ -308,7 +324,9 @@ if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("Syn warn $@ if $@; } -if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("SyndeticsExcerpt") ) { +if ( C4::Context->preference("SyndeticsEnabled") + && C4::Context->preference("SyndeticsExcerpt") + && $syndetics_elements->{'DBCHAPTER'} =~ /DBCHAPTER/ ) { eval { my $syndetics_excerpt = &get_syndetics_excerpt($xisbn); $template->param( SYNDETICS_EXCERPT => $syndetics_excerpt ); @@ -316,14 +334,25 @@ if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("Syn warn $@ if $@; } -if ( C4::Context->preference("SyndeticsEnabled") && C4::Context->preference("SyndeticsReviews") ) { +if ( C4::Context->preference("SyndeticsEnabled") + && C4::Context->preference("SyndeticsReviews")) { eval { - my $syndetics_reviews = &get_syndetics_reviews($xisbn); + my $syndetics_reviews = &get_syndetics_reviews($xisbn,$syndetics_elements); $template->param( SYNDETICS_REVIEWS => $syndetics_reviews ); }; warn $@ if $@; } +if ( C4::Context->preference("SyndeticsEnabled") + && C4::Context->preference("SyndeticsAuthorNotes") + && $syndetics_elements->{'ANOTES'} =~ /ANOTES/ ) { + eval { + my $syndetics_anotes = &get_syndetics_anotes($xisbn); + $template->param( SYNDETICS_ANOTES => $syndetics_anotes ); + }; + warn $@ if $@; +} + # Shelf Browser Stuff if (C4::Context->preference("OPACShelfBrowser")) { # pick the first itemnumber unless one was selected by the user -- 1.5.6.5 _______________________________________________ Koha-patches mailing list [email protected] http://lists.koha.org/mailman/listinfo/koha-patches
