[Koha-patches] [PATCH] Bug 5926 : Fixing Hierarchies : taking any heading subfield
Chris Cormack
chrisc at catalyst.net.nz
Mon Mar 21 23:39:41 CET 2011
From: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>
Conflicts solved:
C4/AuthoritiesMarc.pm
---
C4/AuthoritiesMarc.pm | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index f3cc948..e3bf50e 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -1181,16 +1181,17 @@ sub BuildUnimarcHierarchy{
my $class = shift @_;
my $authid_constructed = shift @_;
return undef unless ($record);
- my $authid=$record->subfield('2..','3');
+ my $authid=$record->field('001')->data();
my %cell;
my $parents=""; my $children="";
my (@loopparents, at loopchildren);
- foreach my $field ($record->field('550')){
+ foreach my $field ($record->field('5..')){
+ my $subfauthid=_get_authid_subfield($field);
if ($field->subfield('5') && $field->subfield('a')){
if ($field->subfield('5') eq 'h'){
- push @loopchildren, { "childauthid"=>$field->subfield('3'),"childvalue"=>$field->subfield('a')};
+ push @loopchildren, { "childauthid"=>$subfauthid,"childvalue"=>$field->subfield('a')};
}elsif ($field->subfield('5') eq 'g'){
- push @loopparents, { "parentauthid"=>$field->subfield('3'),"parentvalue"=>$field->subfield('a')};
+ push @loopparents, { "parentauthid"=>$subfauthid,"parentvalue"=>$field->subfield('a')};
}
# brothers could get in there with an else
}
@@ -1206,6 +1207,10 @@ sub BuildUnimarcHierarchy{
return \%cell;
}
+sub _get_authid_subfield{
+ my ($field)=@_;
+ return $field->subfield('9')||$field->subfield('3');
+}
=head2 GetHeaderAuthority
$ref= &GetHeaderAuthority( $authid)
--
1.7.1
More information about the Koha-patches
mailing list