) 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') {
+ for my $available_type ('SUMMARY','TOC','FICTION','AWARDS1','SERIES1','SPSUMMARY','SPREVIEW', 'AVPROFILE', '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}";
}
sub get_syndetics_summary {
- my ( $isbn,$upc,$oclc ) = @_;
+ my ( $isbn, $upc, $oclc, $syndetics_elements ) = @_;
# grab the AWSAccessKeyId: mine is '0V5RRRRJZ3HR2RQFNHR2'
my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode');
- my $url = "http://www.syndetics.com/index.aspx?isbn=$isbn/SUMMARY.XML&client=$syndetics_client_code&type=xw10&upc=$upc&oclc=$oclc";
+ my $summary_type = exists($syndetics_elements->{'AVSUMMARY'}) ? 'AVSUMMARY' : 'SUMMARY';
+ my $url = "http://www.syndetics.com/index.aspx?isbn=$isbn/$summary_type.XML&client=$syndetics_client_code&type=xw10&upc=$upc&oclc=$oclc";
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $content = $response->content;
warn "could not retrieve $url" unless $content;
- my $xmlsimple = XML::Simple->new();
- $response = $xmlsimple->XMLin(
- $content,
- forcearray => [ qw(Fld520) ],
- ) unless !$content;
- # manipulate response USMARC VarFlds VarDFlds Notes Fld520 a
my $summary;
- $summary = \@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}} if $response;
+ eval {
+ my $doc = $parser->parse_string($content);
+ $summary = $doc->findvalue('//Fld520');
+ };
+ if ($@) {
+ warn "Error parsing response from $url";
+ }
return $summary if $summary;
}
<span class="label">Series Information:</span> <a target="_blank" href="http://www.syndetics.com/ffseries.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->&type=series&num=1&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->">Click to open in new window</a>
</span>
<!-- /TMPL_IF --><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="SyndeticsAVPROFILEExists" -->
+ <span class="results_summary">
+ <span class="label">Audiovisual Profile:</span> <a target="_blank" href="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/avprofile.html&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&type=xw10">Click to open in new window</a>
+ </span>
+ <!-- /TMPL_IF -->
<!-- TMPL_IF NAME="SyndeticsFICTIONExists" -->
<span class="results_summary">
<span class="label">Fiction Notes:</span> <a target="_blank" href="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/fiction.html&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&type=xw10">Click to open in new window</a>
<!-- /TMPL_IF-->
<!-- /TMPL_IF-->
<!-- TMPL_IF NAME="SyndeticsEnabled" -->
-<!-- TMPL_IF NAME="SyndeticsSummary" --><!-- TMPL_IF NAME="SyndeticsSUMMARYExists" -->
-<!-- TMPL_LOOP NAME="SYNDETICS_SUMMARY" -->
- <!-- TMPL_IF NAME="a" -->
+<!-- TMPL_IF NAME="SyndeticsSummary" -->
+<!-- TMPL_IF NAME="SYNDETICS_SUMMARY" -->
<h4>Enhanced Descriptions from Syndetics:</h4>
- <p><!-- TMPL_VAR NAME="a" --></p>
- <!-- /TMPL_IF -->
-<!-- /TMPL_LOOP -->
+ <p><!-- TMPL_VAR NAME="SYNDETICS_SUMMARY" --></p>
+<!-- /TMPL_IF -->
<!-- /TMPL_IF --><!-- /TMPL_IF -->
<!-- /TMPL_IF -->
if ( C4::Context->preference("SyndeticsEnabled")
&& C4::Context->preference("SyndeticsSummary")
- && $syndetics_elements->{'SUMMARY'} =~ /SUMMARY/) {
+ && ( $syndetics_elements->{'SUMMARY'} =~ /SUMMARY/
+ || $syndetics_elements->{'AVSUMMARY'} =~ /AVSUMMARY/ ) ) {
eval {
- my $syndetics_summary = &get_syndetics_summary($isbn,$upc,$oclc);
+ my $syndetics_summary = &get_syndetics_summary($isbn,$upc,$oclc, $syndetics_elements);
$template->param( SYNDETICS_SUMMARY => $syndetics_summary );
};
warn $@ if $@;