From 4daeafa4ac1ae1805ea6043f30ea9f9a38577838 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Thu, 4 Apr 2019 22:32:20 -0300
Subject: [PATCH] Bug 22445: Add new pattern %normalized_isbn%

Quite bad to use C4::Koha from Koha::Biblio :-/
---
 Koha/Biblio.pm                                                    | 5 +++++
 .../prog/en/modules/admin/preferences/enhanced_content.pref       | 2 +-
 t/db_dependent/Koha/Biblios.t                                     | 8 ++++++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm
index eff5f58472..7fd0a8d078 100644
--- a/Koha/Biblio.pm
+++ b/Koha/Biblio.pm
@@ -24,6 +24,7 @@ use List::MoreUtils qw(any);
 use URI;
 use URI::Escape;
 
+use C4::Koha;
 use C4::Biblio qw();
 
 use Koha::Database;
@@ -672,6 +673,10 @@ sub custom_cover_image_url {
         my $isbn = $self->biblioitem->isbn;
         $url =~ s|%isbn%|$isbn|g;
     }
+    if ( $url =~ m|%normalized_isbn%| ) {
+        my $normalized_isbn = C4::Koha::GetNormalizedISBN($self->biblioitem->isbn);
+        $url =~ s|%normalized_isbn%|$normalized_isbn|g;
+    }
     if ( $url =~ m|%issn%| ) {
         my $issn = $self->biblioitem->issn;
         $url =~ s|%issn%|$issn|g;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref
index e06ae65b3b..1388269fe8 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref
@@ -346,7 +346,7 @@ Enhanced Content:
             - "Using the following URL:"
             - pref: CustomCoverImagesURL
               class: url
-            - "You can defined it using the following patterns: %isbn%, %issn%."
+            - "You can define it using the following patterns: %isbn%, %issn%, %normalized_isbn%."
     HTML5 Media:
         -
             - Show a tab with a HTML5 media player for files catalogued in field 856
diff --git a/t/db_dependent/Koha/Biblios.t b/t/db_dependent/Koha/Biblios.t
index 2e7ce189e2..177eda81e8 100644
--- a/t/db_dependent/Koha/Biblios.t
+++ b/t/db_dependent/Koha/Biblios.t
@@ -188,11 +188,11 @@ subtest 'can_be_transferred' => sub {
 };
 
 subtest 'custom_cover_image_url' => sub {
-    plan tests => 2;
+    plan tests => 3;
 
     t::lib::Mocks::mock_preference( 'CustomCoverImagesURL', 'https://my_url/%isbn%_%issn%.png' );
 
-    my $isbn       = 'my_isbn';
+    my $isbn       = '0553573403 | 9780553573404 (pbk.).png';
     my $issn       = 'my_issn';
     my $marc_record = MARC::Record->new;
     my ( $biblionumber, undef ) = C4::Biblio::AddBiblio($marc_record, '');
@@ -208,6 +208,10 @@ subtest 'custom_cover_image_url' => sub {
 
     t::lib::Mocks::mock_preference( 'CustomCoverImagesURL', 'https://my_url/%024$a%.png' );
     is( $biblio->custom_cover_image_url, "https://my_url/$marc_024a.png" );
+
+    t::lib::Mocks::mock_preference( 'CustomCoverImagesURL', 'https://my_url/%normalized_isbn%.png' );
+    my $normalized_isbn = C4::Koha::GetNormalizedISBN($isbn);
+    is( $biblio->custom_cover_image_url, "https://my_url/$normalized_isbn.png" );
 };
 
 $schema->storage->txn_rollback;
-- 
2.11.0