[Koha-patches] [PATCH] Revisions to auto-generated authorities patch
Brian Harrington
brian at jhu.edu
Mon Apr 27 22:53:30 CEST 2009
It turns out that the "blank" record created by MARC::Record->new()
has a leader, so now I explicitly create one in addbiblio.pl. I
also realized I can't count. :-)
Modified per comments by Joe and Galen to keep SetMarcUnicodeFlag
and move it and the leader set to earlier in the process.
---
C4/AuthoritiesMarc.pm | 2 +-
cataloguing/addbiblio.pl | 7 ++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 644f53d..bd768f5 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -522,7 +522,7 @@ sub AddAuthority {
# pass the MARC::Record to this function, and it will create the records in the authority table
my ($record,$authid,$authtypecode) = @_;
my $dbh=C4::Context->dbh;
- my $leader=' nz a22 o 4500';#Leader for incomplete MARC21 record
+ my $leader=' nz a22 o 4500';#Leader for incomplete MARC21 record
# if authid empty => true add, find a new authid number
my $format= 'UNIMARCAUTH' if (uc(C4::Context->preference('marcflavour')) eq 'UNIMARC');
diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl
index 9bcf88b..cd53d4b 100755
--- a/cataloguing/addbiblio.pl
+++ b/cataloguing/addbiblio.pl
@@ -779,6 +779,10 @@ AND (authtypecode IS NOT NULL AND authtypecode<>\"\")|);
my $authtypedata=GetAuthType($data->{authtypecode});
next unless $authtypedata;
my $marcrecordauth=MARC::Record->new();
+ if (C4::Context->preference('marcflavour') eq 'MARC21') {
+ $marcrecordauth->leader(' nz a22 o 4500');
+ SetMarcUnicodeFlag($marcrecordauth, 'MARC21');
+ }
my $authfield=MARC::Field->new($authtypedata->{auth_tag_to_report},'','',"a"=>"".$field->subfield('a'));
map { $authfield->add_subfields($_->[0]=>$_->[1]) if ($_->[0]=~/[A-z]/ && $_->[0] ne "a" )} $field->subfields();
$marcrecordauth->insert_fields_ordered($authfield);
@@ -789,9 +793,6 @@ AND (authtypecode IS NOT NULL AND authtypecode<>\"\")|);
# FIXME: AddAuthority() instead should simply explicitly require that the MARC::Record
# use UTF-8, but as of 2008-08-05, did not want to introduce that kind
# of change to a core API just before the 3.0 release.
- if (C4::Context->preference('marcflavour') eq 'MARC21') {
- SetMarcUnicodeFlag($marcrecordauth, 'MARC21');
- }
if (C4::Context->preference('marcflavour') eq 'MARC21') {
$marcrecordauth->insert_fields_ordered(MARC::Field->new('667','','','a'=>"Machine generated authority record."));
--
1.5.6.3
More information about the Koha-patches
mailing list