Lines 542-557
sub LinkBibHeadingsToAuthorities {
Link Here
|
542 |
} |
542 |
} |
543 |
$field->delete_subfield( code => '9' ) |
543 |
$field->delete_subfield( code => '9' ) |
544 |
if defined $current_link; |
544 |
if defined $current_link; |
545 |
my $authfield = |
545 |
my @auth_subfields; |
546 |
MARC::Field->new( $authority_type->auth_tag_to_report, |
546 |
foreach my $subfield ( $field->subfields() ){ |
547 |
'', '', "a" => "" . $field->subfield('a') ); |
547 |
if ( $subfield->[0] =~ /[A-z]/ |
548 |
map { |
|
|
549 |
$authfield->add_subfields( $_->[0] => $_->[1] ) |
550 |
if ( $_->[0] =~ /[A-z]/ && $_->[0] ne "a" |
551 |
&& C4::Heading::valid_bib_heading_subfield( |
548 |
&& C4::Heading::valid_bib_heading_subfield( |
552 |
$field->tag, $_->[0] ) |
549 |
$field->tag, $subfield->[0] ) |
553 |
); |
550 |
){ |
554 |
} $field->subfields(); |
551 |
push @auth_subfields, $subfield->[0] => $subfield->[1]; |
|
|
552 |
} |
553 |
} |
554 |
# Bib headings contain some ending punctuation that should NOT |
555 |
# be included in the authority record. Strip those before creation |
556 |
next unless @auth_subfields; # Don't try to create a record if we have no fields; |
557 |
my $last_sub = pop @auth_subfields; |
558 |
$last_sub =~ s/[\s]*[,.:=;!%\/][\s]*$//; |
559 |
push @auth_subfields, $last_sub; |
560 |
my $authfield = MARC::Field->new( $authority_type->auth_tag_to_report, '', '', @auth_subfields ); |
555 |
$marcrecordauth->insert_fields_ordered($authfield); |
561 |
$marcrecordauth->insert_fields_ordered($authfield); |
556 |
|
562 |
|
557 |
# bug 2317: ensure new authority knows it's using UTF-8; currently |
563 |
# bug 2317: ensure new authority knows it's using UTF-8; currently |