diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | data/lang.txt | 7 | ||||
-rw-r--r-- | lib/VNDB/Handler/Chars.pm | 11 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNEdit.pm | 17 |
4 files changed, 27 insertions, 9 deletions
@@ -9,6 +9,7 @@ - Bugfix: dbTraitGet() filtering would not always work correctly - Bugfix: Don't allow duplicate trait names/aliasses within the same group - Bugfix: Don't throw error when adding character to VN without releases + - Bugfix: Keep image id on failed (vn|char)add + validate image id 2.20 - 2011-05-01 - Added support for sponsored links on VN pages diff --git a/data/lang.txt b/data/lang.txt index b0ab4f74..b0041080 100644 --- a/data/lang.txt +++ b/data/lang.txt @@ -8709,6 +8709,13 @@ cs : Tuto e-mailovou adresu již někdo k registraci použil hu : Valaki már regisztrált ezzel az email címmel nl : Iemand heeft zich al geregistreerd met dat emailadres +:_formerr_e_invalidimgid +en : No image with that ID +ru : +cs : +hu : +nl : Geen plaatje met dat ID + :_formerr_e_noimage en : Image must be in JPEG or PNG format ru : Изображение должно быть в формате JPEG или PNG diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm index 8edb6236..5e12aa03 100644 --- a/lib/VNDB/Handler/Chars.pm +++ b/lib/VNDB/Handler/Chars.pm @@ -296,7 +296,7 @@ sub edit { push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc}); # handle image upload - $frm->{image} = _uploadimage($self, $r, $frm); + $frm->{image} = _uploadimage($self, $frm); # validate main character if(!$frm->{_err} && $frm->{main}) { @@ -424,8 +424,13 @@ sub edit { sub _uploadimage { - my($self, $c, $frm) = @_; - return $c ? $frm->{image} : 0 if $frm->{_err} || !$self->reqPost('img'); + my($self, $frm) = @_; + + if($frm->{_err} || !$self->reqPost('img')) { + return 0 if !$frm->{image}; + push @{$frm->{_err}}, 'invalidimgid' if !-s sprintf '%s/static/ch/%02d/%d.jpg', $VNDB::ROOT, $frm->{image}%100, $frm->{image}; + return $frm->{image}; + } # perform some elementary checks my $imgdata = $self->reqUploadRaw('img'); diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm index d0848c09..10680f0e 100644 --- a/lib/VNDB/Handler/VNEdit.pm +++ b/lib/VNDB/Handler/VNEdit.pm @@ -60,7 +60,7 @@ sub edit { push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc}); # handle image upload - $frm->{image} = _uploadimage($self, $v, $frm); + $frm->{image} = _uploadimage($self, $frm); if(!$frm->{_err}) { # parse and re-sort fields that have multiple representations of the same information @@ -120,8 +120,13 @@ sub edit { sub _uploadimage { - my($self, $v, $frm) = @_; - return $v ? $frm->{image} : 0 if $frm->{_err} || !$self->reqPost('img'); + my($self, $frm) = @_; + + if($frm->{_err} || !$self->reqPost('img')) { + return 0 if !$frm->{image}; + push @{$frm->{_err}}, 'invalidimgid' if !-s sprintf '%s/static/cv/%02d/%d.jpg', $VNDB::ROOT, $frm->{image}%100, $frm->{image}; + return $frm->{image}; + } # perform some elementary checks my $imgdata = $self->reqUploadRaw('img'); @@ -163,9 +168,9 @@ sub _form { vn_img => [ mt('_vnedit_image'), [ static => nolabel => 1, content => sub { div class => 'img'; - p mt '_vnedit_image_none' if !$v || !$v->{image}; - p mt '_vnedit_image_processing' if $v && $v->{image} < 0; - img src => sprintf("%s/cv/%02d/%d.jpg", $self->{url_static}, $v->{image}%100, $v->{image}), alt => $v->{title} if $v && $v->{image} > 0; + p mt '_vnedit_image_none' if !$frm->{image}; + p mt '_vnedit_image_processing' if $frm->{image} < 0; + img src => sprintf("%s/cv/%02d/%d.jpg", $self->{url_static}, $frm->{image}%100, $frm->{image}) if $frm->{image} > 0; end; div; |