@@ -, +, @@ the url cannot be generated --- Koha/Biblio.pm | 4 ++++ .../intranet-tmpl/prog/en/modules/catalogue/detail.tt | 15 +++++++++------ .../intranet-tmpl/prog/en/modules/catalogue/results.tt | 5 ++++- .../opac-tmpl/bootstrap/en/includes/shelfbrowser.inc | 9 ++++++--- koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt | 11 +++++++---- .../opac-tmpl/bootstrap/en/modules/opac-opensearch.tt | 5 ++++- .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 11 +++++++---- .../opac-tmpl/bootstrap/en/modules/opac-shelves.tt | 17 ++++++++++------- .../bootstrap/en/modules/opac-showreviews-rss.tt | 5 ++++- .../opac-tmpl/bootstrap/en/modules/opac-showreviews.tt | 5 ++++- koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt | 5 ++++- t/db_dependent/Koha/Biblios.t | 6 +++++- 12 files changed, 68 insertions(+), 30 deletions(-) --- a/Koha/Biblio.pm +++ a/Koha/Biblio.pm @@ -756,14 +756,17 @@ sub custom_cover_image_url { my $url = C4::Context->preference('CustomCoverImagesURL'); if ( $url =~ m|{isbn}| ) { my $isbn = $self->biblioitem->isbn; + return unless $isbn; $url =~ s|{isbn}|$isbn|g; } if ( $url =~ m|{normalized_isbn}| ) { my $normalized_isbn = C4::Koha::GetNormalizedISBN($self->biblioitem->isbn); + return unless $normalized_isbn; $url =~ s|{normalized_isbn}|$normalized_isbn|g; } if ( $url =~ m|{issn}| ) { my $issn = $self->biblioitem->issn; + return unless $issn; $url =~ s|{issn}|$issn|g; } @@ -773,6 +776,7 @@ sub custom_cover_image_url { my $subfield = $+{subfield}; my $marc_record = $self->metadata->record; my $value = $marc_record->subfield($field, $subfield); + return unless $value; $url =~ s|$re|$value|; } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -213,12 +213,15 @@ [% END %] [% IF Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL') %] -
- - Custom cover image - -
Custom cover image
-
+ [% SET custom_cover_image_url = biblio.custom_cover_image_url %] + [% IF custom_cover_image_url %] +
+ + Custom cover image + +
Custom cover image
+
+ [% END %] [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt @@ -453,7 +453,10 @@ [% END %] [% IF Koha.Preference('CustomCoverImages') && Koha.Preference('CustomCoverImagesURL') %] - Cover image + [% SET custom_cover_image_url = SEARCH_RESULT.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + Cover image + [% END %] [% END %] [% END # /IF( AmazonCoverImages || LocalCoverImages || AdlibrisEnabled || IntranetCoce )%] --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc +++ a/koha-tmpl/opac-tmpl/bootstrap/en/includes/shelfbrowser.inc @@ -71,9 +71,12 @@ [% END %] [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - - Cover image - + [% SET custom_cover_image_url = item.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + + Cover image + + [% END %] [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -113,10 +113,13 @@ [% END %] [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - [% IF ( OPACURLOpenInNewWindow ) %] - Cover image - [% ELSE %] - Cover image + [% SET custom_cover_image_url = biblio.custom_cover_image_url %] + [% IF custom_cover_image_url %] + [% IF ( OPACURLOpenInNewWindow ) %] + Cover image + [% ELSE %] + Cover image + [% END %] [% END %] [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-opensearch.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-opensearch.tt @@ -66,7 +66,10 @@ [% IF ( BakerTaylorEnabled ) %][% IF bt_id %]See Baker & Taylor[% END %][% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - Cover image + [% SET custom_cover_image_url = SEARCH_RESULT.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + Cover image + [% END %] [% END %]

[% IF ( SEARCH_RESULT.author ) %]By [% SEARCH_RESULT.author | html %]. [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt @@ -371,10 +371,13 @@ [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - [% IF ( OPACURLOpenInNewWindow ) %] - Cover image - [% ELSE %] - Cover image + [% SET custom_cover_image_url = SEARCH_RESULT.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + [% IF ( OPACURLOpenInNewWindow ) %] + Cover image + [% ELSE %] + Cover image + [% END %] [% END %] [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -453,16 +453,19 @@ [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - [% IF ( itemsloo.BiblioDefaultViewmarc ) %] - - [% ELSE %] - [% IF ( itemsloo.BiblioDefaultViewisbd ) %] - + [% SET custom_cover_image_url = itemsloo.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + [% IF ( itemsloo.BiblioDefaultViewmarc ) %] + [% ELSE %] - + [% IF ( itemsloo.BiblioDefaultViewisbd ) %] + + [% ELSE %] + + [% END %] [% END %] + Cover image [% END %] - Cover image [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-showreviews-rss.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-showreviews-rss.tt @@ -25,7 +25,10 @@ [% IF ( BakerTaylorEnabled && bt_id ) %]See Baker & Taylor[% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - Cover image + [% SET custom_cover_image_url = review.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + Cover image + [% END %] [% END %] [% IF ( review.author ) %]

By [% review.author | html %].

[% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-showreviews.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-showreviews.tt @@ -158,7 +158,10 @@ [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - Cover image + [% SET custom_cover_image_url = review.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + Cover image + [% END %] [% END %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt @@ -294,7 +294,10 @@ [% END %] [% IF Koha.Preference('OPACCustomCoverImages') AND Koha.Preference('CustomCoverImagesURL') %] - Cover image + [% SET custom_cover_image_url = ISSUE.biblio_object.custom_cover_image_url %] + [% IF custom_cover_image_url %] + Cover image + [% END %] [% END %] [% IF ( SyndeticsEnabled && SyndeticsCoverImages ) %] --- a/t/db_dependent/Koha/Biblios.t +++ a/t/db_dependent/Koha/Biblios.t @@ -189,7 +189,7 @@ subtest 'can_be_transferred' => sub { }; subtest 'custom_cover_image_url' => sub { - plan tests => 3; + plan tests => 4; t::lib::Mocks::mock_preference( 'CustomCoverImagesURL', 'https://my_url/{isbn}_{issn}.png' ); @@ -213,6 +213,10 @@ subtest 'custom_cover_image_url' => sub { 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" ); + + $biblio->biblioitem->isbn('')->store; + is( $biblio->custom_cover_image_url, undef, "Don't generate the url if the biblio does not have the value needed to generate it" ); + }; $schema->storage->txn_rollback; --