[Koha-patches] [PATCH] LibraryThing Cover Images

Kyle Hall kyle.m.hall at gmail.com
Thu Sep 17 15:07:48 CEST 2009


This one is a minor update. LibraryThing returns a transparent 1x1 gif
if a cover image is not found for the given isbn. The original version
assumed that all the images were jpeg and added .jpg to the filename.
The only difference is this one no longer adds .jpg to the filename.

Kyle

http://www.kylehall.info
Information Technology
Crawford County Federated Library System ( http://www.ccfls.org )




On Thu, Sep 17, 2009 at 9:05 AM, Kyle M Hall <kyle.m.hall at gmail.com> wrote:
> ---
>  C4/External/LibraryThing.pm                        |  104 ++++++++++++++++++++
>  catalogue/detail.pl                                |    7 ++
>  catalogue/search.pl                                |    7 ++
>  installer/data/mysql/en/mandatory/sysprefs.sql     |    5 +
>  .../1-Obligatoire/unimarc_standard_systemprefs.sql |    5 +
>  installer/data/mysql/updatedatabase.pl             |   11 ++
>  koha-tmpl/intranet-tmpl/cover_images/large/readme  |    2 +
>  koha-tmpl/intranet-tmpl/cover_images/medium/readme |    2 +
>  koha-tmpl/intranet-tmpl/cover_images/small/readme  |    2 +
>  .../prog/en/modules/catalogue/detail.tmpl          |   16 +++-
>  .../prog/en/modules/catalogue/results.tmpl         |    7 ++
>  .../opac-tmpl/prog/en/modules/opac-detail.tmpl     |    2 +-
>  .../opac-tmpl/prog/en/modules/opac-results.tmpl    |    5 +
>  opac/opac-detail.pl                                |   17 +++-
>  opac/opac-search.pl                                |    9 ++
>  15 files changed, 193 insertions(+), 8 deletions(-)
>  create mode 100644 C4/External/LibraryThing.pm
>  create mode 100644 koha-tmpl/intranet-tmpl/cover_images/large/readme
>  create mode 100644 koha-tmpl/intranet-tmpl/cover_images/medium/readme
>  create mode 100644 koha-tmpl/intranet-tmpl/cover_images/small/readme
>
> diff --git a/C4/External/LibraryThing.pm b/C4/External/LibraryThing.pm
> new file mode 100644
> index 0000000..570928e
> --- /dev/null
> +++ b/C4/External/LibraryThing.pm
> @@ -0,0 +1,104 @@
> +package C4::External::LibraryThing;
> +# Copyright (C) 2009 Kyle Hall
> +# <kyle.m.hall at gmail dot com>
> +#
> +# This file is part of Koha.
> +#
> +# Koha is free software; you can redistribute it and/or modify it under the
> +# terms of the GNU General Public License as published by the Free Software
> +# Foundation; either version 2 of the License, or (at your option) any later
> +# version.
> +#
> +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
> +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
> +# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License along with
> +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
> +# Suite 330, Boston, MA  02111-1307 USA
> +
> +use LWP::Simple;
> +
> +use C4::Context;
> +
> +use strict;
> +use warnings;
> +
> +use vars qw($VERSION @ISA @EXPORT);
> +
> +BEGIN {
> +    require Exporter;
> +    $VERSION = 1;
> +    @ISA = qw(Exporter);
> +    @EXPORT = qw(
> +        get_librarything_cover_url
> +    );
> +}
> +
> +our $LIBRARYTHING_BASE_URL = 'http://covers.librarything.com/devkey/KEY/SIZE/isbn/ISBN';
> +our $COVERIMAGE_CACHE_URL = '/intranet-tmpl/cover_images/SIZE/';
> +our $COVERIMAGE_CACHE_DIR = C4::Context->intranetdir . '/koha-tmpl/intranet-tmpl/cover_images/SIZE/';
> +
> +=head1 NAME
> +
> +C4::External::LibraryThing - Functions for retrieving LibraryThing.com content in Koha
> +
> +=head2 FUNCTIONS
> +
> +This module provides facilities for retrieving LibraryThing.com content in Koha
> +
> +=cut
> +
> +=head2 slashifyDate
> +
> +  $cover_url = get_librarything_cover_url( $isbn, $type );
> +
> +  $isbn is the ISBN of the book to whose cover we are to get the URL for.
> +  $type is the target for the image ( 'list' as in a list of results OR 'detail' as in a single bib view ). Defaults to 'list'.
> +=cut
> +
> +
> +sub get_librarything_cover_url {
> +  my ( $isbn, $type ) = @_;
> +  my $filename = "$isbn";
> +
> +  unless ( $type eq 'list' || $type eq 'detail' ) { $type = 'list'; }
> +
> +  my $image_size;
> +  if ( $type eq 'list'   ) { $image_size = C4::Context->preference('LibraryThingCoverImageSizeResults'); }
> +  if ( $type eq 'detail' ) { $image_size = C4::Context->preference('LibraryThingCoverImageSizeDetails'); }
> +  unless ( $image_size ) { $image_size = 'medium'; } ## $image_size must be 'small', 'medium', or 'large'
> +
> +  my $coverimage_path = $COVERIMAGE_CACHE_DIR;
> +  $coverimage_path =~ s/SIZE/$image_size/;
> +  $coverimage_path .= $filename;
> +
> +  my $coverimage_url = $COVERIMAGE_CACHE_URL;
> +  $coverimage_url =~ s/SIZE/$image_size/;
> +  $coverimage_url .= $filename;
> +
> +  ## Check to see if cover image is already cached for this isbn
> +  unless ( -e $coverimage_path ) {
> +    ## Image not cached, grab it first
> +    my $developer_key = C4::Context->preference('LibraryThingDeveloperKey');
> +    my $librarything_url = $LIBRARYTHING_BASE_URL;
> +    $librarything_url =~ s/KEY/$developer_key/;
> +    $librarything_url =~ s/ISBN/$isbn/;
> +    $librarything_url =~ s/SIZE/$image_size/;
> +
> +    my $tmp = getstore( $librarything_url, $coverimage_path );
> +  }
> +
> +  return $coverimage_url;
> +}
> +
> +1;
> +__END__
> +
> +=head1 NOTES
> +
> +=head1 AUTHOR
> +
> +Kyle M Hall <kyle.m.hall at gmail.com>
> +
> +=cut
> diff --git a/catalogue/detail.pl b/catalogue/detail.pl
> index 6c2afdc..71d7911 100755
> --- a/catalogue/detail.pl
> +++ b/catalogue/detail.pl
> @@ -34,6 +34,7 @@ use C4::Members;
>  use C4::Serials;
>  use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
>  use C4::External::Amazon;
> +use C4::External::LibraryThing;
>  use C4::Search;                # enabled_staff_search_views
>  use C4::VirtualShelves;
>
> @@ -65,6 +66,12 @@ my $ean = GetNormalizedEAN($record,$marcflavour);
>  my $oclc = GetNormalizedOCLCNumber($record,$marcflavour);
>  my $isbn = GetNormalizedISBN(undef,$record,$marcflavour);
>
> +# LibraryThing Stuff
> +if ( C4::Context->preference('LibraryThingCoverImages') ) {
> +  my $librarything_cover_url = get_librarything_cover_url( $isbn, 'detail' );
> +  $template->param( LibraryThingCoverImage => $librarything_cover_url );
> +}
> +
>  $template->param(
>     normalized_upc => $upc,
>     normalized_ean => $ean,
> diff --git a/catalogue/search.pl b/catalogue/search.pl
> index 33da2b0..4b41270 100755
> --- a/catalogue/search.pl
> +++ b/catalogue/search.pl
> @@ -146,6 +146,7 @@ use C4::Languages qw(getAllLanguages);
>  use C4::Koha;
>  use POSIX qw(ceil floor);
>  use C4::Branch; # GetBranches
> +use C4::External::LibraryThing;
>
>  # create a new CGI object
>  # FIXME: no_undef_params needs to be tested
> @@ -521,6 +522,12 @@ for (my $i=0;$i<@servers;$i++) {
>             exit;
>         }
>
> +       if ( C4::Context->preference("LibraryThingCoverImages") ) {
> +         foreach my $result ( @newresults ) {
> +           ## Add LibraryThing Cover Images
> +           $result->{LibraryThingCoverImageURL} = get_librarything_cover_url( $result->{normalized_isbn}, 'list' );
> +         }
> +       }
>
>         if ($hits) {
>             $template->param(total => $hits);
> diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql b/installer/data/mysql/en/mandatory/sysprefs.sql
> index 6f60fa7..ccb5d3e 100644
> --- a/installer/data/mysql/en/mandatory/sysprefs.sql
> +++ b/installer/data/mysql/en/mandatory/sysprefs.sql
> @@ -262,3 +262,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
>  INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('DisplayOPACiconsXSLT', '1', '', 'If ON, displays the format, audience, type icons in XSLT MARC21 results and display pages.', 'YesNo');
>  INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowAllMessageDeletion','0','Allow any Library to delete any message','','YesNo');
>  INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('ShowPatronImageInWebBasedSelfCheck', '0', 'If ON, displays patron image when a patron uses web-based self-checkout', '', 'YesNo');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImages', '0', '', 'Display Cover Images in Staff Client from LibraryThing.', 'YesNo');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeResults', 'small', 'small|medium|large', 'LibraryThing Cover Image size for search results lists.', 'Choice');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeDetails', 'medium', 'small|medium|large', 'LibraryThing Cover Image size for details view', 'Choice');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingDeveloperKey', '', '', 'Necessary for using LibraryThing Cover Images. See http://www.librarything.com/services/keys.php', '');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('OPACLibraryThingCoverImages', '0', '', 'Display cover images in OPAC from LibraryThing', 'YesNo');
> diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
> index bee360a..ba4bbda 100644
> --- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
> +++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
> @@ -261,3 +261,8 @@ INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('H
>  INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('DisplayOPACiconsXSLT', '1', '', 'Si activé, affiche le format, le type de public et les icônes de type en XSLT (MARC21)).', 'YesNo');
>  INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowAllMessageDeletion','0','Allow any Library to delete any message','','YesNo');
>  INSERT INTO systempreferences (variable,value,explanation,options,type)VALUES('ShowPatronImageInWebBasedSelfCheck', '0', 'Si activé, affiche la photo de l''adhérent lors de l''utilisation de la console de prêt auto-contrôlé', '', 'YesNo');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImages', '0', '', 'Display Cover Images in Staff Client from LibraryThing.', 'YesNo');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeResults', 'small', 'small|medium|large', 'LibraryThing Cover Image size for search results lists.', 'Choice');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeDetails', 'medium', 'small|medium|large', 'LibraryThing Cover Image size for details view', 'Choice');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingDeveloperKey', '', '', 'Necessary for using LibraryThing Cover Images. See http://www.librarything.com/services/keys.php', '');
> +INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('OPACLibraryThingCoverImages', '0', '', 'Display cover images in OPAC from LibraryThing', 'YesNo');
> diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
> index 10c3451..e5fd30e 100755
> --- a/installer/data/mysql/updatedatabase.pl
> +++ b/installer/data/mysql/updatedatabase.pl
> @@ -2675,6 +2675,17 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
>     SetVersion ($DBversion);
>  }
>
> +$DBversion = '3.01.00.062';
> +if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
> +    $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImages', '0', '', 'Display Cover Images in Staff Client from LibraryThing.', 'YesNo')");
> +    $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingDeveloperKey', '', '', 'Necessary for using LibraryThing Cover Images. See http://www.librarything.com/services/keys.php', '')");
> +    $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('OPACLibraryThingCoverImages', '0', '', 'Display cover images in OPAC from LibraryThing', 'YesNo')");
> +    $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeResults', 'small', 'small|medium|large', 'LibraryThing Cover Image size for search results lists.', 'Choice')");
> +    $dbh->do("INSERT INTO `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) VALUES ('LibraryThingCoverImageSizeDetails', 'medium', 'small|medium|large', 'LibraryThing Cover Image size for details view', 'Choice')");
> +    SetVersion ($DBversion);
> +    print "Upgrade to $DBversion done ( Added system preferences for LibraryThing Cover Images )\n";
> +}
> +
>  =item DropAllForeignKeys($table)
>
>   Drop all foreign keys of the table $table
> diff --git a/koha-tmpl/intranet-tmpl/cover_images/large/readme b/koha-tmpl/intranet-tmpl/cover_images/large/readme
> new file mode 100644
> index 0000000..11f7402
> --- /dev/null
> +++ b/koha-tmpl/intranet-tmpl/cover_images/large/readme
> @@ -0,0 +1,2 @@
> +Please do not delete this file. It exists to keep the cms from deleting this
> +directory.
> \ No newline at end of file
> diff --git a/koha-tmpl/intranet-tmpl/cover_images/medium/readme b/koha-tmpl/intranet-tmpl/cover_images/medium/readme
> new file mode 100644
> index 0000000..11f7402
> --- /dev/null
> +++ b/koha-tmpl/intranet-tmpl/cover_images/medium/readme
> @@ -0,0 +1,2 @@
> +Please do not delete this file. It exists to keep the cms from deleting this
> +directory.
> \ No newline at end of file
> diff --git a/koha-tmpl/intranet-tmpl/cover_images/small/readme b/koha-tmpl/intranet-tmpl/cover_images/small/readme
> new file mode 100644
> index 0000000..11f7402
> --- /dev/null
> +++ b/koha-tmpl/intranet-tmpl/cover_images/small/readme
> @@ -0,0 +1,2 @@
> +Please do not delete this file. It exists to keep the cms from deleting this
> +directory.
> \ No newline at end of file
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
> index 251c6df..98a63c5 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
> @@ -108,9 +108,21 @@ function verify_images() {
>        <!-- /TMPL_IF -->
>         </ul>
>         </div>
> +
> +<!-- TMPL_IF NAME="LibraryThingCoverImage" -->
> +       <div class="yui-u" id="bookcoverimg">
> +               <img border="0" src="<!-- TMPL_VAR NAME="LibraryThingCoverImage" -->" alt="" />
> +       </div>
> +<!-- /TMPL_IF -->
>
> -<!-- TMPL_IF NAME="AmazonEnabled" --><!-- TMPL_IF NAME="AmazonCoverImages" --><div class="yui-u" id="bookcoverimg">
> -<a href="http://www.amazon<!-- TMPL_VAR NAME="AmazonTld" -->/gp/reader/<!-- TMPL_VAR NAME="normalized_isbn" -->/ref=sib_dp_pt/002-7879865-0184864#reader-link"><img border="0" src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.MZZZZZZZ.jpg" alt="" /></a></div><!-- /TMPL_IF --><!-- /TMPL_IF -->
> +<!-- TMPL_IF NAME="AmazonEnabled" -->
> +       <!-- TMPL_IF NAME="AmazonCoverImages" -->
> +               <div class="yui-u" id="bookcoverimg">
> +                       <a href="http://www.amazon<!-- TMPL_VAR NAME="AmazonTld" -->/gp/reader/<!-- TMPL_VAR NAME="normalized_isbn" -->/ref=sib_dp_pt/002-7879865-0184864#reader-link"><img border="0" src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.MZZZZZZZ.jpg" alt="" /></a>
> +               </div>
> +       <!-- /TMPL_IF -->
> +<!-- /TMPL_IF -->
> +
>
>         <div class="yui-u" style="margin-top: 1em;">
>         <ul>
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
> index 5bb82c2..53a76c4 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
> @@ -328,6 +328,13 @@ function GetZ3950Terms(){
>                                         <img src="<!-- TMPL_IF NAME="normalized_isbn" -->http://images.amazon.com/images/P/<!-- TMPL_VAR name="normalized_isbn" -->.01.TZZZZZZZ.jpg<!-- TMPL_ELSE -->http://g-images.amazon.com/images/G/01/x-site/icons/no-img-sm.gif<!-- /TMPL_IF -->" alt="image" class="thumbnail" /> <!-- /TMPL_IF -->
>                                     </a></td>
>                             <!-- /TMPL_IF -->
> +
> +                    <!-- TMPL_IF NAME="LibraryThingCoverImageURL" -->
> +                               <td>
> +                                       <img src="<!-- TMPL_VAR NAME="LibraryThingCoverImageURL" -->" alt="" class="thumbnail" />
> +                               </td>
> +                    <!-- /TMPL_IF -->
> +
>                             <td>
>                                 <input type="checkbox" class="selection" value="<!-- TMPL_VAR NAME="biblionumber" -->" style="display:none" />
>                             </td>
> 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 ae40837..d7929ab 100644
> --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
> +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
> @@ -70,7 +70,7 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
>     <div id="catalogue_detail_biblio">
>
>     <div id="bookcover">
> -    <!-- TMPL_IF NAME="OPACAmazonEnabled" --><!-- TMPL_IF NAME="OPACAmazonCoverImages" --><!-- TMPL_IF NAME="OPACURLOpenInNewWindow" --><a href="http://www.amazon<!-- TMPL_VAR NAME="AmazonTld" -->/gp/reader/<!-- TMPL_VAR NAME="normalized_isbn" -->/ref=sib_dp_pt/002-7879865-0184864#reader-link" target="_blank"><img border="0" src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.MZZZZZZZ.jpg" alt="Cover Image" /></a><!-- TMPL_ELSE --><a href="http://www.amazon<!-- TMPL_VAR NAME="AmazonTld" -->/gp/reader/<!-- TMPL_VAR NAME="normalized_isbn" -->/ref=sib_dp_pt/002-7879865-0184864#reader-link"><img border="0" src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.MZZZZZZZ.jpg" alt="Cover Image" /></a><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
> +    <!-- TMPL_IF NAME="OPACLibraryThingCoverImage" --><img border="0" src="<!-- TMPL_VAR NAME="OPACLibraryThingCoverImage" -->" /><!-- /TMPL_IF -->
>     <!-- TMPL_IF NAME="SyndeticsEnabled" --><!-- TMPL_IF NAME="SyndeticsCoverImages" --><!-- TMPL_IF NAME="content_identifier_exists" --><img src="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/<!-- TMPL_VAR NAME="SyndeticsCoverImageSize" -->.GIF&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" -->&amp;type=xw10<!-- 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 -->" alt="" class="thumbnail" /><!-- TMPL_ELSE --><span class="no-image">No cover image available</span><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
>     <!-- TMPL_IF NAME="GoogleJackets" --><div style="block" title="<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->" class="<!-- TMPL_VAR NAME="normalized_isbn" -->" id="gbs-thumbnail-preview"></div><!-- /TMPL_IF -->
>     <!-- TMPL_IF NAME="BakerTaylorEnabled" --><!-- TMPL_IF NAME="normalized_isbn" --><!-- TMPL_IF NAME="OPACURLOpenInNewWindow" --><a href="https://<!-- TMPL_VAR NAME="BakerTaylorBookstoreURL" ESCAPE="HTML" --><!-- TMPL_VAR NAME="normalized_isbn" -->" target="_blank"><img alt="See Baker &amp; Taylor" src="<!-- TMPL_VAR NAME="BakerTaylorImageURL" ESCAPE="HTML" --><!-- TMPL_VAR NAME="normalized_isbn" -->" /></a><!-- TMPL_ELSE --><a href="https://<!-- TMPL_VAR NAME="BakerTaylorBookstoreURL" ESCAPE="HTML" --><!-- TMPL_VAR NAME="normalized_isbn" -->"><img alt="See Baker &amp; Taylor" src="<!-- TMPL_VAR NAME="BakerTaylorImageURL" ESCAPE="HTML" --><!-- TMPL_VAR NAME="normalized_isbn" -->" /></a><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
> diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
> index eb995f1..6abab5a 100644
> --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
> +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
> @@ -473,6 +473,11 @@ $(document).ready(function(){
>                                </span>
>                                </td><td>
>                                        <a class="p1" href="/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">
> +
> +                    <!-- TMPL_IF NAME="OPACLibraryThingCoverImageURL" -->
> +                               <img src="<!-- TMPL_VAR NAME="OPACLibraryThingCoverImageURL" -->" alt="" class="thumbnail" />
> +                   <!-- /TMPL_IF -->
> +
>                     <!-- TMPL_IF NAME="OPACAmazonEnabled" --><!-- TMPL_IF NAME="OPACAmazonCoverImages" --><!-- TMPL_IF NAME="normalized_isbn" --><img src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.TZZZZZZZ.jpg" alt="" class="thumbnail" /><!-- TMPL_ELSE --><span class="no-image">No cover image available</span><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
>
>                                        <!-- TMPL_IF NAME="SyndeticsEnabled" --><!-- TMPL_IF NAME="SyndeticsCoverImages" --><!-- TMPL_IF NAME="content_identifier_exists" --><img src="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/SC.GIF&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" -->&amp;type=xw10<!-- 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 -->" alt="" class="thumbnail" /><!-- TMPL_ELSE --><span class="no-image">No cover image available</span><!-- /TMPL_IF --><!-- /TMPL_IF --><!-- /TMPL_IF -->
> diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
> index c3b104b..526cb69 100755
> --- a/opac/opac-detail.pl
> +++ b/opac/opac-detail.pl
> @@ -34,6 +34,7 @@ use C4::Tags qw(get_tags);
>  use C4::Dates qw/format_date/;
>  use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
>  use C4::External::Amazon;
> +use C4::External::LibraryThing;
>  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;
> @@ -42,10 +43,10 @@ use C4::VirtualShelves;
>  use C4::XSLT;
>
>  BEGIN {
> -       if (C4::Context->preference('BakerTaylorEnabled')) {
> -               require C4::External::BakerTaylor;
> -               import C4::External::BakerTaylor qw(&image_url &link_url);
> -       }
> +  if (C4::Context->preference('BakerTaylorEnabled')) {
> +    require C4::External::BakerTaylor;
> +    import C4::External::BakerTaylor qw(&image_url &link_url);
> +  }
>  }
>
>  my $query = new CGI;
> @@ -268,7 +269,6 @@ $template->param(
>  );
>
>  # Lists
> -
>  if (C4::Context->preference("virtualshelves") ) {
>    $template->param( 'GetShelves' => GetBibliosShelves( $biblionumber ) );
>  }
> @@ -283,6 +283,13 @@ if (C4::Context->preference("OPACFRBRizeEditions")==1) {
>     };
>     if ($@) { warn "XISBN Failed $@"; }
>  }
> +
> +# LibraryThing Stuff
> +if ( C4::Context->preference('OPACLibraryThingCoverImages') ) {
> +  my $librarything_cover_url = get_librarything_cover_url( $isbn, 'detail' );
> +  $template->param( OPACLibraryThingCoverImage => $librarything_cover_url );
> +}
> +
>  # Amazon.com Stuff
>  if ( C4::Context->preference("OPACAmazonEnabled") ) {
>     $template->param( AmazonTld => get_amazon_tld() );
> diff --git a/opac/opac-search.pl b/opac/opac-search.pl
> index 9261b55..323c82d 100755
> --- a/opac/opac-search.pl
> +++ b/opac/opac-search.pl
> @@ -14,6 +14,7 @@ use C4::Auth qw(:DEFAULT get_session);
>  use C4::Search;
>  use C4::Biblio;  # GetBiblioData
>  use C4::Koha;
> +use C4::External::LibraryThing;
>  use C4::Tags qw(get_tags);
>  use POSIX qw(ceil floor strftime);
>  use C4::Branch; # GetBranches
> @@ -467,6 +468,14 @@ for (my $i=0;$i<=@servers;$i++) {
>             $template->param(SEARCH_RESULTS => \@newresults,
>                                 OPACItemsResultsDisplay => (C4::Context->preference("OPACItemsResultsDisplay") eq "itemdetails"?1:0),
>                             );
> +
> +            if ( C4::Context->preference("OPACLibraryThingCoverImages") ) {
> +              foreach my $result ( @newresults ) {
> +                ## Add LibraryThing Cover Images
> +                $result->{OPACLibraryThingCoverImageURL} = get_librarything_cover_url( $result->{normalized_isbn}, 'list' );
> +              }
> +            }
> +
>             ## Build the page numbers on the bottom of the page
>             my @page_numbers;
>             # total number of pages there will be
> --
> 1.5.6.5
>
>



More information about the Koha-patches mailing list