Bug 32495: (follow-up) Remove required property
[koha-ffzg.git] / opac / opac-image.pl
index 8e627b1..56cf552 100755 (executable)
 #
 #
 
-use strict;
-use warnings;
+use Modern::Perl;
 
 use CGI qw ( -utf8 );
 use C4::Context;
-use C4::Images;
+use Koha::Biblios;
+use Koha::CoverImages;
 
 $| = 1;
 
-my $DEBUG = 0;
-my $data  = new CGI;
+my $data  = CGI->new;
 my $imagenumber;
 
 =head1 NAME
@@ -58,43 +57,36 @@ imagenumber, a random image is selected.
 
 =cut
 
-my ( $image, $mimetype ) = C4::Images->NoImage;
+my ( $image );
 if ( C4::Context->preference("OPACLocalCoverImages") ) {
-    if ( defined $data->param('imagenumber') ) {
+    my $imagenumber = $data->param('imagenumber');
+    my $biblionumber = $data->param('biblionumber');
+    if ( defined $imagenumber ) {
         $imagenumber = $data->param('imagenumber');
+        $image = Koha::CoverImages->find($imagenumber);
     }
-    elsif ( defined $data->param('biblionumber') ) {
-        my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
-        if (@imagenumbers) {
-            $imagenumber = $imagenumbers[0];
-        }
-        else {
-            warn "No images for this biblio" if $DEBUG;
-        }
-    }
-    else {
-        $imagenumber = shift;
-    }
-
-    if ($imagenumber) {
-        warn "imagenumber passed in: $imagenumber" if $DEBUG;
-        my $imagedata = RetrieveImage($imagenumber);
-        if ($imagedata) {
-            if ( $data->param('thumbnail') ) {
-                $image = $imagedata->{'thumbnail'};
-            }
-            else {
-                $image = $imagedata->{'imagefile'};
-            }
-            $mimetype = $imagedata->{'mimetype'};
+    elsif ( defined $biblionumber ) {
+        my $biblio = Koha::Biblios->find($biblionumber);
+        Koha::Exceptions::ObjectNotFound->throw( 'No bibliographic record for biblionumber ' . $biblionumber ) unless $biblio;
+        my $cover_images = $biblio->cover_images;
+        if ( $cover_images->count ) {
+            $image = $cover_images->next;
         }
     }
 }
+
+$image ||= Koha::CoverImages->no_image;
+
+my $image_data =
+    $data->param('thumbnail')
+  ? $image->thumbnail
+  : $image->imagefile;
+
 print $data->header(
-    -type            => $mimetype,
+    -type            => $image->mimetype,
     -expires         => '+30m',
-    -Content_Length  => length($image)
-), $image;
+    -Content_Length  => length($image_data)
+), $image_data;
 
 =head1 AUTHOR