[Koha-patches] [PATCH] Bugfix ShelfBrowser using unsanitized ISBNs. Owen reported the
Joe Atzberger
joe.atzberger at liblime.com
Mon May 19 22:43:17 CEST 2008
This is a RESEND of previous patch to include commit message.
Bugfix ShelfBrowser using unsanitized ISBNs. Owen reported the
ShelfBrowser failing to display book image, even when the correct
image was already displayed on the same page above. This fixes it.
Next we should move the sanitize function into C4 for widespread
consumption and consistency.
---
opac/opac-detail.pl | 36 +++++++++++++++++++++++++-----------
1 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
index d881bba..e1791ae 100755
--- a/opac/opac-detail.pl
+++ b/opac/opac-detail.pl
@@ -223,20 +223,26 @@ $template->param(
loggedincommenter => $loggedincommenter
);
+sub isbn_cleanup ($) {
+ my $isbn=shift;
+ if (
+ $isbn =~ /\b(\d{13})\b/ or
+ $isbn =~ /\b(\d{10})\b/ or
+ $isbn =~ /\b(\d{9}X)\b/i
+ ) {
+ return $1;
+ }
+ return undef;
+}
+
# XISBN Stuff
my $xisbn=$dat->{'isbn'};
$xisbn =~ /(\d*[X]*)/;
$template->param(amazonisbn => $1); # FIXME: so it is OK if the ISBN = 'XXXXX' ?
-my ($clean, $amazonisbn);
-$amazonisbn = $1;
+my ($clean,$clean2);
# these might be overkill, but they are better than the regexp above.
-if (
- $amazonisbn =~ /\b(\d{13})\b/ or
- $amazonisbn =~ /\b(\d{10})\b/ or
- $amazonisbn =~ /\b(\d{9}X)\b/i
-) {
- $clean = $1;
- $template->param(clean_isbn => $1);
+if ($clean = isbn_cleanup($xisbn)){
+ $template->param(clean_isbn => $clean);
}
if (C4::Context->preference("OPACFRBRizeEditions")==1) {
@@ -303,7 +309,11 @@ while (my $this_item = $sth_shelfbrowse_previous->fetchrow_hashref()) {
$sth_get_biblio->execute($this_item->{biblionumber});
while (my $this_biblio = $sth_get_biblio->fetchrow_hashref()) {
$this_item->{'title'} = $this_biblio->{'title'};
- $this_item->{'isbn'} = $this_biblio->{'isbn'};
+ if ($clean2 = isbn_cleanup($this_biblio->{'isbn'})) {
+ $this_item->{'isbn'} = $clean2;
+ } else {
+ $this_item->{'isbn'} = $this_biblio->{'isbn'};
+ }
}
unshift @previous_items, $this_item;
}
@@ -317,7 +327,11 @@ while (my $this_item = $sth_shelfbrowse_next->fetchrow_hashref()) {
$sth_get_biblio->execute($this_item->{biblionumber});
while (my $this_biblio = $sth_get_biblio->fetchrow_hashref()) {
$this_item->{'title'} = $this_biblio->{'title'};
- $this_item->{'isbn'} = $this_biblio->{'isbn'};
+ if ($clean2 = isbn_cleanup($this_biblio->{'isbn'})) {
+ $this_item->{'isbn'} = $clean2;
+ } else {
+ $this_item->{'isbn'} = $this_biblio->{'isbn'};
+ }
}
push @next_items, $this_item;
}
--
1.5.5.GIT
More information about the Koha-patches
mailing list