From 90ba63789c10e7124a871b9eaa923c8d31957683 Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Thu, 19 Jan 2023 14:21:38 +0000 Subject: [PATCH] Bug 32680: Add hooks to allow cover art to come from plugins This patch adds hooks to Koha core that allow a plugin for cover art to inject the images into the OPAC and staff client. These hooks could be re-used for other providers. As an example, a plugin has been created for BDS covers, the link is in another comment Test plan: 1) Apply patch 2) Go to https://github.com/PTFS-Europe/koha-plugin-addBDSCovers 3) In the releases section, download the .kpz file 4) Upload this in the plugins section and enable the plugin 5) In either the OPAC or staff client, search the catalog 6) The results should have cover art from BDS covers 7) Click on a result and the detail page should also have the cover art Signed-off-by: Martin --- catalogue/detail.pl | 5 +++++ catalogue/search.pl | 5 +++++ .../prog/en/modules/catalogue/detail.tt | 11 ++++++++--- .../prog/en/modules/catalogue/results.tt | 18 +++++++++++++++--- .../bootstrap/en/modules/opac-detail.tt | 8 +++++++- .../bootstrap/en/modules/opac-results.tt | 18 ++++++++++++++++-- opac/opac-detail.pl | 5 +++++ opac/opac-search.pl | 5 +++++ 8 files changed, 66 insertions(+), 9 deletions(-) diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 905120ec9d..8ee5b33dfe 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -686,4 +686,9 @@ $template->param(found1 => scalar $query->param('found1') ); $template->param(biblio => $biblio); +my $intranet_js_plugins = Koha::Template::Plugin::KohaPlugins->get_plugins_intranet_js; +if(index($intranet_js_plugins, "Cover Image Plugin") != -1){ + $template->param( Cover_Images_Required => 1 ) +} + output_html_with_http_headers $query, $cookie, $template->output; diff --git a/catalogue/search.pl b/catalogue/search.pl index bf225911ef..68e75eba49 100755 --- a/catalogue/search.pl +++ b/catalogue/search.pl @@ -779,6 +779,11 @@ my $some_public_shelves = Koha::Virtualshelves->get_some_shelves( } ); +my $intranet_js_plugins = Koha::Template::Plugin::KohaPlugins->get_plugins_intranet_js; +if(index($intranet_js_plugins, "Cover Image Plugin") != -1){ + $template->param( Cover_Images_Required => 1 ) +} + $template->param( add_to_some_private_shelves => $some_private_shelves, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt index 707a5d7cf3..fca0219640 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -114,7 +114,7 @@ [% END %] - [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] + [% IF ( Cover_Images_Required || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %]
[% ELSE %]
@@ -204,10 +204,10 @@ [% END %]
[%# .page-section %] - [% IF ( AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %] + [% IF ( Cover_Images_Required || AmazonCoverImages || LocalCoverImages || IntranetCoce || ( SyndeticsCovers ) || (Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL')) ) %]
-
+
[% IF ( LocalCoverImages ) %] [% IF localimages.count %] [% FOREACH image IN localimages %] @@ -1461,6 +1461,11 @@ Note that permanent location is a code, and location may be an authval. [% Asset.js("js/modals/display_ticket.js") | $raw %] [% END %] + [% IF ( Cover_Images_Required ) %] + + [% END %] + [% END %] + [% END %] + [% IF ( OpacHighlightedWords ) %][% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %][% END %] [% IF ( Koha.Preference('OPACDetailQRCode') ) %] [% Asset.js("lib/kjua/kjua.min.js") | $raw %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt index 95fa8d6304..dec50d039f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt @@ -341,7 +341,7 @@ [% # Cell 4: Search result details and controls %] -
+
[% IF ( SEARCH_RESULT.title ) %] [% img_title = SEARCH_RESULT.title %] @@ -587,7 +587,21 @@ [% IF OpenLibraryCovers || OpenLibrarySearch %] [% Asset.js("js/openlibrary.js") | $raw %] [% END %] - + [% IF ( Cover_Images_Required ) %] + + [% END %]