Lines 1128-1155
sub BuildUnimarcHierarchies{
Link Here
|
1128 |
} else { |
1128 |
} else { |
1129 |
my $record = GetAuthority($authid); |
1129 |
my $record = GetAuthority($authid); |
1130 |
my $found; |
1130 |
my $found; |
1131 |
if ($record){ |
1131 |
return unless $record; |
1132 |
foreach my $field ($record->field('550')){ |
1132 |
foreach my $field ($record->field('5..')){ |
1133 |
if ($field->subfield('5') && $field->subfield('5') eq 'g'){ |
1133 |
if ($field->subfield('5') && $field->subfield('5') eq 'g'){ |
1134 |
my $parentrecord = GetAuthority($field->subfield('3')); |
1134 |
my $subfauthid=_get_authid_subfield($field); |
1135 |
my $localresult=$hierarchies; |
1135 |
next if ($subfauthid eq $authid); |
1136 |
my $trees; |
1136 |
my $parentrecord = GetAuthority($subfauthid); |
1137 |
$trees = BuildUnimarcHierarchies($field->subfield('3')); |
1137 |
my $localresult=$hierarchies; |
1138 |
my @trees; |
1138 |
my $trees; |
1139 |
if ($trees=~/;/){ |
1139 |
$trees = BuildUnimarcHierarchies($subfauthid); |
1140 |
@trees = split(/;/,$trees); |
1140 |
my @trees; |
1141 |
} else { |
1141 |
if ($trees=~/;/){ |
1142 |
push @trees, $trees; |
1142 |
@trees = split(/;/,$trees); |
1143 |
} |
1143 |
} else { |
1144 |
foreach (@trees){ |
1144 |
push @trees, $trees; |
1145 |
$_.= ",$authid"; |
1145 |
} |
1146 |
} |
1146 |
foreach (@trees){ |
1147 |
@globalresult = (@globalresult,@trees); |
1147 |
$_.= ",$authid"; |
1148 |
$found=1; |
1148 |
} |
1149 |
} |
1149 |
@globalresult = (@globalresult,@trees); |
1150 |
$hierarchies=join(";",@globalresult); |
1150 |
$found=1; |
1151 |
} |
1151 |
} |
1152 |
} |
1152 |
$hierarchies=join(";",@globalresult); |
|
|
1153 |
} |
1153 |
#Unless there is no ancestor, I am alone. |
1154 |
#Unless there is no ancestor, I am alone. |
1154 |
$hierarchies="$authid" unless ($hierarchies); |
1155 |
$hierarchies="$authid" unless ($hierarchies); |
1155 |
} |
1156 |
} |
1156 |
- |
|
|