From 28a250ff215323c633a7f834b313a9255443dc83 Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Wed, 24 Mar 2010 13:44:50 +0100 Subject: [PATCH] Fixing Hierarchies : taking any heading subfield --- C4/AuthoritiesMarc.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 3e3534ff53..ba71a8df4f 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1051,10 +1051,12 @@ sub BuildUnimarcHierarchies{ my $data = GetHeaderAuthority($authid); if ($data->{'authtrees'} and not $force){ return $data->{'authtrees'}; - } elsif ($force or !($data->{authtrees})) { +# } elsif ($data->{'authtrees'}){ +# $hierarchies=$data->{'authtrees'}; + } else { my $record = GetAuthority($authid); my $found; - foreach my $field ($record->field('550')){ + foreach my $field ($record->field('5..')){ if ($field->subfield('5') && $field->subfield('5') eq 'g'){ my $subfauthid=_get_authid_subfield($field); my $parentrecord = GetAuthority($subfauthid); @@ -1078,9 +1080,6 @@ sub BuildUnimarcHierarchies{ #Unless there is no ancestor, I am alone. $hierarchies="$authid" unless ($hierarchies); } - else { - $hierarchies=$data->{'authtrees'}; - } AddAuthorityTrees($authid,$hierarchies); return $hierarchies; } @@ -1111,11 +1110,12 @@ sub BuildUnimarcHierarchy{ my $record = shift @_; my $class = shift @_; my $authid_constructed = shift @_; + return unless $record; my $authid=$record->field('001')->data(); my %cell; my $parents=""; my $children=""; my (@loopparents,@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'){ -- 2.39.5