X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-image.pl;h=e2dc5569dbbb9ee88dad15dd2cd04b6aa71a00a9;hb=488a3d6fed57b4e0d773157ee4a6ab7e4775e7a4;hp=1edc0b4a07d4b5c62e6009d730cac576bdf0b0de;hpb=585a0024a1eee2e15283348c09653edbf4bfc267;p=koha.git diff --git a/opac/opac-image.pl b/opac/opac-image.pl index 1edc0b4a07..e2dc5569db 100755 --- a/opac/opac-image.pl +++ b/opac/opac-image.pl @@ -1,5 +1,8 @@ #!/usr/bin/perl # +# Copyright (C) 2011 C & P Bibliography Services +# Jared Camins-Esakov +# # based on patronimage.pl # # This file is part of Koha. @@ -23,14 +26,14 @@ use strict; use warnings; -use CGI; #qw(:standard escapeHTML); +use CGI; use C4::Context; use C4::Images; -$|=1; +$| = 1; -my $DEBUG = 1; -my $data = new CGI; +my $DEBUG = 0; +my $data = new CGI; my $imagenumber; =head1 NAME @@ -55,49 +58,43 @@ imagenumber, a random image is selected. =cut -if (defined $data->param('imagenumber')) { - $imagenumber = $data->param('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; - error(); +my ( $image, $mimetype ) = C4::Images->NoImage; +if ( C4::Context->preference("OPACLocalCoverImages") ) { + if ( defined $data->param('imagenumber') ) { + $imagenumber = $data->param('imagenumber'); } -} else { - $imagenumber = shift; -} - -if ($imagenumber) { - warn "imagenumber passed in: $imagenumber" if $DEBUG; - my $imagedata = RetrieveImage($imagenumber); - - error() unless $imagedata; - - if ($imagedata) { - my $image; - if ($data->param('thumbnail')) { - $image = $imagedata->{'thumbnail'}; - } else { - $image = $imagedata->{'imagefile'}; + 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; } - print $data->header (-type => $imagedata->{'mimetype'}, -'Cache-Control' => 'no-store', -expires => 'now', -Content_Length => length ($image)), $image; - exit; - } else { - warn "No image exists for $imagenumber" if $DEBUG; - error(); } -} else { - error(); -} - -error(); + else { + $imagenumber = shift; + } -sub error { - print $data->header ( -status=> '404', -expires => 'now' ); - exit; + 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'}; + } + } } +print $data->header( + -type => $mimetype, + -expires => '+30m', + -Content_Length => length($image) +), $image; =head1 AUTHOR