[Koha-bugs] [Bug 31207] The OPAC Shelf browser fails to display local cover images

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Fri Feb 2 14:49:20 CET 2024


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=31207

--- Comment #26 from Andreas Roussos <a.roussos at dataly.gr> ---
(In reply to Jonathan Druart from comment #21)
Hi, Jonathan!

I'm sorry for the (much) belated reply. As per my previous
message to Lucas, I realise this bug has been left lingering
for too long. I'm keen to move this forward, so please see
my comments inline below:

> +                [% IF itemloop_has_images OR otheritemloop_has_images %]
> +                    KOHA.LocalCover.GetCoverFromItemnumber(true);
> +                [% END %]
> 
> 
> This is not correct, that's not what we want here.
> 
> You don't want to get the image at the item level if the *current* biblio
> has image at the item level.
Fair point, I agree. To decide which local cover image to display
for the items shown in the shelf browser we shouldn't look at the
current biblio but rather handle each item independently.

In fact, I think that the algorithm should operate as follows:

1) If only a biblio-level image exists:
    => show that for all biblio items
2) If only item-level images exist:
    => show the respective image for each item
3) If both biblio-level and item-level images exist:
    => show the item-level image for the items that have one
    => fall back to the biblio-level image for all other items

> If you want to implement that you need to:
> 1. Create a new JS function in localcovers.jsĀ (say
> GetCoverFromItemnumberOrBibnumber) that would call opac-image.pl with a new
> parameter (say biblio-fallback=1)
> 2. Modify opac-image.pl to retrieve this parameter and return
> $item->cover_image || $biblio->cover_image
I'm afraid this is the part that I don't understand fully ;-)

When would this new biblio-fallback parameter be set?
And how would it work in conjunction with opac-image.pl?

As per the DESCRIPTION section of opac-image.pl, the script
currently accepts an imagenumber or a biblionumber, returning
a random image if the latter was provided (side note: I think
it's not actually 100% random but rather the first cover image):

 72     elsif ( defined $biblionumber ) {
 73         my $biblio = Koha::Biblios->find($biblionumber);
 74         unless ($biblio) {
 75             print $input->redirect("/cgi-bin/koha/errors/404.pl");
 76             exit;
 77         }
 78         my $cover_images = $biblio->cover_images;
 79         if ( $cover_images->count ) {
 80             $image = $cover_images->next;
 81         }
 82     }

AIUI, unless we modify opac-image.pl to also accept an itemnumber
parameter we have no way of implementing the cover image selection
algorithm I described above. To do this I actually had to also
modify opac-detail.tt, shelfbrowser.inc, and C4/ShelfBrowser.pm.

> The selenium test could also cover this situation :)
OK, I reckon that should be easy to implement since we already
have a test action that uploads an item-level local cover image.
What's left to be done is to write some more tests to check if
the correct local cover image is returned in each situation.

> Does that make sense?
I think what confused me in the past (not your fault!) was that
you mentioned two changes that needed to be made (localcovers.js
and opac-image.pl), and because I had to change more files I
considered my revised patch a failure.

Apologies for not asking for your feedback earlier.

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list