[Koha-patches] [PATCH] (bug #4856) fix rebuild zebra to delete NSB/NSE chars
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Tue Jun 8 11:16:36 CEST 2010
---
misc/migration_tools/rebuild_zebra.pl | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl
index fe85e13..c8ab757 100755
--- a/misc/migration_tools/rebuild_zebra.pl
+++ b/misc/migration_tools/rebuild_zebra.pl
@@ -385,6 +385,7 @@ sub get_corrected_marc_record {
}
if ( C4::Context->preference("marcflavour") eq "UNIMARC" ) {
fix_unimarc_100($marc);
+ fix_unimarc_titles( $marc );
}
}
@@ -494,6 +495,27 @@ sub fix_authority_id {
}
}
+sub fix_unimarc_titles {
+ my $marc = shift;
+
+ for my $field ($marc->field('200'), $marc->field('225'), $marc->field('400'), $marc->field('410') ){
+ my $newfield;
+ for ($field->subfields()){
+ # remove SUDOC specific NSB NSE
+ $_->[1] =~ s/\x{98}|\x{9C}/ /g;
+ $_->[1] =~ s/\x{88}|\x{89}/ /g;
+ $_->[1] =~ s/Histoires//g;
+ unless ($newfield) {
+ $newfield = MARC::Field->new($field->tag(), '', '', @$_);
+ }else{
+ $newfield->add_subfields(@$_);
+ }
+
+ }
+ $field->replace_with($newfield);
+ }
+}
+
sub fix_unimarc_100 {
# FIXME - again, if this is necessary, it belongs in C4::AuthoritiesMarc.
--
1.7.0.4
More information about the Koha-patches
mailing list