Bug 26048: Use ErrorDocument middleware for Plack HTTP errors
[koha-ffzg.git] / opac / opac-imageviewer.pl
index 3cb4779..6daa63d 100755 (executable)
 # You should have received a copy of the GNU General Public License
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
+use Modern::Perl;
 
 use CGI qw ( -utf8 );
 use C4::Auth;
 use C4::Biblio;
 use C4::Output;
-use C4::Images;
 
-my $query = new CGI;
+use Koha::Biblios;
+use Koha::CoverImages;
+use Koha::Items;
+
+my $query = CGI->new;
 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
     {
         template_name   => "opac-imageviewer.tt",
@@ -38,14 +40,22 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 
 my $biblionumber = $query->param('biblionumber') || $query->param('bib');
 my $imagenumber = $query->param('imagenumber');
-my $biblio = GetBiblio($biblionumber);
+unless ( $biblionumber ) {
+    # Retrieving the biblio from the imagenumber
+    my $image = Koha::CoverImages->find($imagenumber);
+    my $item  = Koha::Items->find($image->{itemnumber});
+    $biblionumber = $item->biblionumber;
+}
+my $biblio = Koha::Biblios->find( $biblionumber );
 
 if ( C4::Context->preference("OPACLocalCoverImages") ) {
-    my @images = ListImagesForBiblio($biblionumber);
-    $template->{VARS}->{'OPACLocalCoverImages'} = 1;
-    $template->{VARS}->{'images'}               = \@images;
-    $template->{VARS}->{'biblionumber'}         = $biblionumber;
-    $template->{VARS}->{'imagenumber'} = $imagenumber || $images[0] || '';
+    my $images = !$imagenumber ? Koha::Biblios->find($biblionumber)->cover_images->as_list : [];
+    $template->param(
+        OPACLocalCoverImages => 1,
+        images               => $images,
+        biblionumber         => $biblionumber,
+        imagenumber          => (@$images ? $images->[0]->imagenumber : $imagenumber),
+    );
 }
 
 $template->{VARS}->{'biblio'} = $biblio;