From 5395164d6cf520ef47c96fa5a52869ded1e29d81 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 10 Jun 2010 15:28:12 -0400 Subject: [PATCH] Fix for Bug 4885 - Only 1 ISBN shows in non-XSL detail view Fixed by doing a pretty dumb copy of GetMarcNotes. Functional, but it could be there is a more efficient way to do it given we want one repeating tag rather than a range of tags? --- C4/Biblio.pm | 41 ++++++++++++++++++++ catalogue/detail.pl | 2 + .../prog/en/modules/catalogue/detail.tmpl | 8 +++- .../opac-tmpl/prog/en/modules/opac-detail.tmpl | 8 +++- opac/opac-detail.pl | 2 + 5 files changed, 57 insertions(+), 4 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 11767a7..70dbad7 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -68,6 +68,7 @@ BEGIN { &GetISBDView &GetMarcNotes + &GetMarcISBN &GetMarcSubjects &GetMarcBiblio &GetMarcAuthors @@ -1253,6 +1254,46 @@ sub GetAuthorisedValueDesc { } } +=head2 GetMarcISBN + + $marcisbnsarray = GetMarcISBN( $record, $marcflavour ); + +Get all ISBNs from the MARC record and returns them in an array. +ISBNs stored in differents places depending on MARC flavour + +=cut + +sub GetMarcISBN { + my ( $record, $marcflavour ) = @_; + my $scope; + if ( $marcflavour eq "MARC21" ) { + $scope = '020'; + } else { # assume unimarc if not marc21 + $scope = '010'; + } + my @marcisbns; + my $isbn = ""; + my $tag = ""; + my $marcisbn; + foreach my $field ( $record->field($scope) ) { + my $value = $field->as_string(); + if ( $isbn ne "" ) { + $marcisbn = { marcisbn => $isbn, }; + push @marcisbns, $marcisbn; + $isbn = $value; + } + if ( $isbn ne $value ) { + $isbn = $isbn . " " . $value; + } + } + + if ($isbn) { + $marcisbn = { marcisbn => $isbn }; + push @marcisbns, $marcisbn; #load last tag into array + } + return \@marcisbns; +} # end GetMarcISBN + =head2 GetMarcNotes $marcnotesarray = GetMarcNotes( $record, $marcflavour ); diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 85819c0..16e5ced 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -87,6 +87,7 @@ unless (defined($record)) { } my $marcnotesarray = GetMarcNotes( $record, $marcflavour ); +my $marcisbnsarray = GetMarcISBN( $record, $marcflavour ); my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour ); my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour ); my $marcseriesarray = GetMarcSeries($record,$marcflavour); @@ -207,6 +208,7 @@ $template->param( MARCAUTHORS => $marcauthorsarray, MARCSERIES => $marcseriesarray, MARCURLS => $marcurlsarray, + MARCISBNS => $marcisbnsarray, subtitle => $subtitle, itemdata_ccode => $itemfields{ccode}, itemdata_enumchron => $itemfields{enumchron}, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl index 7bd4959..694a307 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl @@ -120,8 +120,12 @@ function verify_images() {