X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FAuthoritiesMarc.pm;h=1eeb96454ea893c618fed66502e506c4fb79206a;hb=6c7f964c27937fd1c352bfd8936c047d995382b8;hp=f3cc948d898f5b22d74cb959444018f508059a84;hpb=1e98195b1014f9b0680be9d6ea9e8e8132821158;p=koha_gimpoz diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index f3cc948d89..1eeb96454e 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -624,6 +624,7 @@ sub AddAuthority { $f5->update($time.".0"); } + SetUTF8Flag($record); if ($format eq "MARC21") { if (!$record->leader) { $record->leader($leader); @@ -650,7 +651,7 @@ sub AddAuthority { } if (($format eq "UNIMARCAUTH") && (!$record->subfield('100','a'))){ - $record->leader(" nx j22 "); + $record->leader(" nx j22 ") unless ($record->leader()); my $date=POSIX::strftime("%Y%m%d",localtime); if ($record->field('100')){ $record->field('100')->update('a'=>$date."afrey50 ba0"); @@ -1042,7 +1043,7 @@ sub BuildSummary{ $narrowerterms =~s/-- \n$//; $seealso =~s/-- \n$//; $see =~s/-- \n$//; - $summary = "".$heading."
".($notes?"$notes
":""); + $summary = "".$heading."
".($notes?"$notes
":""); $summary.= '

TG : '.$broaderterms.'

' if ($broaderterms); $summary.= '

TS : '.$narrowerterms.'

' if ($narrowerterms); $summary.= '

TA : '.$seealso.'

' if ($seealso); @@ -1181,16 +1182,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,@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 +1208,10 @@ sub BuildUnimarcHierarchy{ return \%cell; } +sub _get_authid_subfield{ + my ($field)=@_; + return $field->subfield('9')||$field->subfield('3'); +} =head2 GetHeaderAuthority $ref= &GetHeaderAuthority( $authid)