Browse Source

Syndetics: add support for AVSUMMARY and AVPROFILE

Added support for the Syndetics AV summary and AV profile
data elements.  The AV summary is displayed in the description
tab if present, while the AV profile is displayed as
a link off of the OPAC bib details page.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
3.2.x
Galen Charlton 15 years ago
parent
commit
53ace84401
  1. 21
      C4/External/Syndetics.pm
  2. 15
      koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
  3. 5
      opac/opac-detail.pl

21
C4/External/Syndetics.pm

@ -90,7 +90,7 @@ sub get_syndetics_index {
) 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}";
@ -100,12 +100,13 @@ sub get_syndetics_index {
}
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;
@ -117,14 +118,14 @@ sub get_syndetics_summary {
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;
}

15
koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl

@ -233,6 +233,11 @@
<span class="label">Series Information:</span> <a target="_blank" href="http://www.syndetics.com/ffseries.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->&amp;type=series&amp;num=1&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;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&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&amp;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&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&amp;type=xw10">Click to open in new window</a>
@ -424,13 +429,11 @@
<!-- /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 -->

5
opac/opac-detail.pl

@ -333,9 +333,10 @@ if ( C4::Context->preference("SyndeticsEnabled") ) {
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 $@;

Loading…
Cancel
Save