View | Details | Raw Unified | Return to bug 7600
Collapse All | Expand All

(-)a/C4/Images.pm (-6 / +25 lines)
Lines 25-31 use 5.010; Link Here
25
use C4::Context;
25
use C4::Context;
26
use GD;
26
use GD;
27
27
28
use vars qw($debug $VERSION @ISA @EXPORT);
28
use vars qw($debug $noimage $VERSION @ISA @EXPORT);
29
29
30
BEGIN {
30
BEGIN {
31
31
Lines 40-45 BEGIN { Link Here
40
      &DelImage
40
      &DelImage
41
    );
41
    );
42
    $debug = $ENV{KOHA_DEBUG} || $ENV{DEBUG} || 0;
42
    $debug = $ENV{KOHA_DEBUG} || $ENV{DEBUG} || 0;
43
44
    $noimage = pack( "H*",
45
            '47494638396101000100800000FFFFFF'
46
          . '00000021F90401000000002C00000000'
47
          . '010001000002024401003B' );
43
}
48
}
44
49
45
=head2 PutImage
50
=head2 PutImage
Lines 101-113 sub RetrieveImage { Link Here
101
    my $sth = $dbh->prepare($query);
106
    my $sth = $dbh->prepare($query);
102
    $sth->execute($imagenumber);
107
    $sth->execute($imagenumber);
103
    my $imagedata = $sth->fetchrow_hashref;
108
    my $imagedata = $sth->fetchrow_hashref;
104
    if ( $sth->err ) {
109
    if ( !$imagedata ) {
105
        warn "Database error!";
110
        $imagedata->{'thumbnail'} = $noimage;
106
        return undef;
111
        $imagedata->{'imagefile'} = $noimage;
107
    }
112
    }
108
    else {
113
    if ( $sth->err ) {
109
        return $imagedata;
114
        warn "Database error!" if $debug;
110
    }
115
    }
116
    return $imagedata;
111
}
117
}
112
118
113
=head2 ListImagesForBiblio
119
=head2 ListImagesForBiblio
Lines 192-195 sub _scale_image { Link Here
192
    }
198
    }
193
}
199
}
194
200
201
=head2 NoImage
202
203
    C4::Images->NoImage;
204
205
Returns the gif to be used when there is no image matching the request, and
206
its mimetype (image/gif).
207
208
=cut
209
210
sub NoImage {
211
    return $noimage, 'image/gif';
212
}
213
195
1;
214
1;
(-)a/catalogue/image.pl (-47 / +29 lines)
Lines 58-119 imagenumber, a random image is selected. Link Here
58
58
59
=cut
59
=cut
60
60
61
error() unless C4::Context->preference("OPACLocalCoverImages");
61
my ( $image, $mimetype ) = C4::Images->NoImage;
62
62
if ( C4::Context->preference("LocalCoverImages") ) {
63
if ( defined $data->param('imagenumber') ) {
63
    if ( defined $data->param('imagenumber') ) {
64
    $imagenumber = $data->param('imagenumber');
64
        $imagenumber = $data->param('imagenumber');
65
}
66
elsif ( defined $data->param('biblionumber') ) {
67
    my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
68
    if (@imagenumbers) {
69
        $imagenumber = $imagenumbers[0];
70
    }
71
    else {
72
        warn "No images for this biblio" if $DEBUG;
73
        error();
74
    }
65
    }
75
}
66
    elsif ( defined $data->param('biblionumber') ) {
76
else {
67
        my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
77
    $imagenumber = shift;
68
        if (@imagenumbers) {
78
}
69
            $imagenumber = $imagenumbers[0];
79
80
if ($imagenumber) {
81
    warn "imagenumber passed in: $imagenumber" if $DEBUG;
82
    my $imagedata = RetrieveImage($imagenumber);
83
84
    error() unless $imagedata;
85
86
    if ($imagedata) {
87
        my $image;
88
        if ( $data->param('thumbnail') ) {
89
            $image = $imagedata->{'thumbnail'};
90
        }
70
        }
91
        else {
71
        else {
92
            $image = $imagedata->{'imagefile'};
72
            warn "No images for this biblio" if $DEBUG;
93
        }
73
        }
94
        print $data->header(
95
            -type            => $imagedata->{'mimetype'},
96
            -'Cache-Control' => 'no-store',
97
            -expires         => 'now',
98
            -Content_Length  => length($image)
99
        ), $image;
100
        exit;
101
    }
74
    }
102
    else {
75
    else {
103
        warn "No image exists for $imagenumber" if $DEBUG;
76
        $imagenumber = shift;
104
        error();
105
    }
77
    }
106
}
107
else {
108
    error();
109
}
110
78
111
error();
79
    if ($imagenumber) {
112
80
        warn "imagenumber passed in: $imagenumber" if $DEBUG;
113
sub error {
81
        my $imagedata = RetrieveImage($imagenumber);
114
    print $data->header( -status => '404', -expires => 'now' );
82
        if ($imagedata) {
115
    exit;
83
            if ( $data->param('thumbnail') ) {
84
                $image = $imagedata->{'thumbnail'};
85
            }
86
            else {
87
                $image = $imagedata->{'imagefile'};
88
            }
89
            $mimetype = $imagedata->{'mimetype'};
90
        }
91
    }
116
}
92
}
93
print $data->header(
94
    -type            => $mimetype,
95
    -'Cache-Control' => 'no-store',
96
    -expires         => 'now',
97
    -Content_Length  => length($image)
98
), $image;
117
99
118
=head1 AUTHOR
100
=head1 AUTHOR
119
101
(-)a/opac/opac-image.pl (-48 / +29 lines)
Lines 58-119 imagenumber, a random image is selected. Link Here
58
58
59
=cut
59
=cut
60
60
61
error() unless C4::Context->preference("OPACLocalCoverImages");
61
my ( $image, $mimetype ) = C4::Images->NoImage;
62
62
if ( C4::Context->preference("OPACLocalCoverImages") ) {
63
if ( defined $data->param('imagenumber') ) {
63
    if ( defined $data->param('imagenumber') ) {
64
    $imagenumber = $data->param('imagenumber');
64
        $imagenumber = $data->param('imagenumber');
65
}
66
elsif ( defined $data->param('biblionumber') ) {
67
    my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
68
    if (@imagenumbers) {
69
        $imagenumber = $imagenumbers[0];
70
    }
71
    else {
72
        warn "No images for this biblio" if $DEBUG;
73
        error();
74
    }
65
    }
75
}
66
    elsif ( defined $data->param('biblionumber') ) {
76
else {
67
        my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
77
    $imagenumber = shift;
68
        if (@imagenumbers) {
78
}
69
            $imagenumber = $imagenumbers[0];
79
80
if ($imagenumber) {
81
    warn "imagenumber passed in: $imagenumber" if $DEBUG;
82
    my $imagedata = RetrieveImage($imagenumber);
83
84
    error() unless $imagedata;
85
86
    if ($imagedata) {
87
        my $image;
88
        if ( $data->param('thumbnail') ) {
89
            $image = $imagedata->{'thumbnail'};
90
        }
70
        }
91
        else {
71
        else {
92
            $image = $imagedata->{'imagefile'};
72
            warn "No images for this biblio" if $DEBUG;
93
        }
73
        }
94
        print $data->header(
95
            -type            => $imagedata->{'mimetype'},
96
            -'Cache-Control' => 'no-store',
97
            -expires         => 'now',
98
            -Content_Length  => length($image)
99
        ), $image;
100
        exit;
101
    }
74
    }
102
    else {
75
    else {
103
        warn "No image exists for $imagenumber" if $DEBUG;
76
        $imagenumber = shift;
104
        error();
105
    }
77
    }
106
}
107
else {
108
    error();
109
}
110
78
111
error();
79
    if ($imagenumber) {
112
80
        warn "imagenumber passed in: $imagenumber" if $DEBUG;
113
sub error {
81
        my $imagedata = RetrieveImage($imagenumber);
114
    print $data->header( -status => '404', -expires => 'now' );
82
        if ($imagedata) {
115
    exit;
83
            if ( $data->param('thumbnail') ) {
84
                $image = $imagedata->{'thumbnail'};
85
            }
86
            else {
87
                $image = $imagedata->{'imagefile'};
88
            }
89
            $mimetype = $imagedata->{'mimetype'};
90
        }
91
    }
116
}
92
}
93
print $data->header(
94
    -type            => $mimetype,
95
    -'Cache-Control' => 'no-store',
96
    -expires         => 'now',
97
    -Content_Length  => length($image)
98
), $image;
117
99
118
=head1 AUTHOR
100
=head1 AUTHOR
119
101
120
- 

Return to bug 7600