From 7fd0a58305b74d6dc743a4b27678f9ac72bd2c0b Mon Sep 17 00:00:00 2001 From: hdl Date: Wed, 15 Jun 2005 16:09:42 +0000 Subject: [PATCH] Displaying dashed isbn. --- C4/Biblio.pm | 41 ++++++++++++++++++++++++++++++++++++++++- MARCdetail.pl | 4 ++++ opac/opac-MARCdetail.pl | 3 +++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 2f719947da..602027483a 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -70,6 +70,7 @@ $VERSION = 0.01; &char_decode &FindDuplicate + &DisplayISBN ); # @@ -475,6 +476,7 @@ sub MARCgetbiblio { # Returns MARC::Record of the biblio passed in parameter. my ( $dbh, $bibid ) = @_; my $record = MARC::Record->new(); +# warn "". $bidid; #---- TODO : the leader is missing $record->leader(' '); @@ -2620,7 +2622,41 @@ sub FindDuplicate { # no result, returns nothing return; } - +sub DisplayISBN { + my ($isbn)=@_; + my $seg1; + if(substr($isbn, 0, 1) <=7) { + $seg1 = substr($isbn, 0, 1); + } elsif(substr($isbn, 0, 2) <= 94) { + $seg1 = substr($isbn, 0, 2); + } elsif(substr($isbn, 0, 3) <= 995) { + $seg1 = substr($isbn, 0, 3); + } elsif(substr($isbn, 0, 4) <= 9989) { + $seg1 = substr($isbn, 0, 4); + } else { + $seg1 = substr($isbn, 0, 5); + } + my $x = substr($isbn, length($seg1)); + my $seg2; + if(substr($x, 0, 2) <= 19) { +# if(sTmp2 < 10) sTmp2 = "0" sTmp2; + $seg2 = substr($x, 0, 2); + } elsif(substr($x, 0, 3) <= 699) { + $seg2 = substr($x, 0, 3); + } elsif(substr($x, 0, 4) <= 8399) { + $seg2 = substr($x, 0, 4); + } elsif(substr($x, 0, 5) <= 89999) { + $seg2 = substr($x, 0, 5); + } elsif(substr($x, 0, 6) <= 9499999) { + $seg2 = substr($x, 0, 6); + } else { + $seg2 = substr($x, 0, 7); + } + my $seg3=substr($x,length($seg2)); + $seg3=substr($seg3,0,length($seg3)-1) ; + my $seg4 = substr($x, -1, 1); + return "$seg1-$seg2-$seg3-$seg4"; +} END { } # module clean-up code here (global destructor) =back @@ -2635,6 +2671,9 @@ Paul POULAIN paul.poulain@free.fr # $Id$ # $Log$ +# Revision 1.120 2005/06/15 16:09:43 hdl +# Displaying dashed isbn. +# # Revision 1.119 2005/06/01 20:43:58 genjimoto # patch from Genji (Waylon R.) to update subjects in MARC tables when systempref has MARC=OFF # diff --git a/MARCdetail.pl b/MARCdetail.pl index 37866b0a2b..0288241ce5 100755 --- a/MARCdetail.pl +++ b/MARCdetail.pl @@ -115,8 +115,12 @@ for (my $tabloop = 0; $tabloop<=10;$tabloop++) { my %subfield_data; $subfield_data{marc_lib}=$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{lib}; $subfield_data{link}=$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{link}; +# warn "tag : ".$tagslib->{$fields[$x_i]->tag()}." subfield :".$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}."lien koha? : "$subfield_data{link}; if ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{isurl}) { $subfield_data{marc_value}="$subf[$i][1]"; + } elsif ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{kohafield} eq "biblioitems.isbn") { +# warn " tag : ".$tagslib->{$fields[$x_i]->tag()}." subfield :".$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}. "ISBN : ".$subf[$i][1]."PosttraitementISBN :".DisplayISBN($subf[$i][1]); + $subfield_data{marc_value}=DisplayISBN($subf[$i][1]); } else { if ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{authtypecode}) { $subfield_data{authority}=$fields[$x_i]->subfield(9); diff --git a/opac/opac-MARCdetail.pl b/opac/opac-MARCdetail.pl index 1710b23fa8..ac23ef55c3 100755 --- a/opac/opac-MARCdetail.pl +++ b/opac/opac-MARCdetail.pl @@ -117,6 +117,9 @@ for (my $tabloop = 0; $tabloop<=10;$tabloop++) { $subfield_data{link}=$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{link}; if ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{isurl}) { $subfield_data{marc_value}="$subf[$i][1]"; + } elsif ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{kohafield} eq "biblioitems.isbn") { +# warn " tag : ".$tagslib->{$fields[$x_i]->tag()}." subfield :".$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}. "ISBN : ".$subf[$i][1]."PosttraitementISBN :".DisplayISBN($subf[$i][1]); + $subfield_data{marc_value}=DisplayISBN($subf[$i][1]); } else { if ($tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}->{authtypecode}) { $subfield_data{authority}=$fields[$x_i]->subfield(9); -- 2.39.5