|
Lines 697-702
sub marc_records_to_documents {
Link Here
|
| 697 |
$altscript = 1; |
697 |
$altscript = 1; |
| 698 |
} |
698 |
} |
| 699 |
} |
699 |
} |
|
|
700 |
# Handle references to GEOGR_NAME authorities |
| 701 |
if ($marcflavour eq 'marc21' && $tag eq '651') { |
| 702 |
$self->embed_geographic_name($field, $record_document, $data_fields_rules); |
| 703 |
} |
| 700 |
|
704 |
|
| 701 |
my $data_field_rules = $data_fields_rules->{$tag}; |
705 |
my $data_field_rules = $data_fields_rules->{$tag}; |
| 702 |
if ($data_field_rules) { |
706 |
if ($data_field_rules) { |
|
Lines 979-984
sub marc_records_to_documents {
Link Here
|
| 979 |
return \@record_documents; |
983 |
return \@record_documents; |
| 980 |
} |
984 |
} |
| 981 |
|
985 |
|
|
|
986 |
sub embed_geographic_name { |
| 987 |
my ($self, $field, $record_document, $rules) = @_; |
| 988 |
|
| 989 |
my $authid = $field->subfield('9'); |
| 990 |
return unless $authid; |
| 991 |
my $authority = Koha::MetadataRecord::Authority->get_from_authid($authid); |
| 992 |
return unless $authority; |
| 993 |
|
| 994 |
my $tag = '034'; |
| 995 |
|
| 996 |
my $auth_marc = $authority->record; |
| 997 |
my @coordinate_fields = $auth_marc->field($tag); |
| 998 |
|
| 999 |
for my $field (@coordinate_fields) { |
| 1000 |
my $data_field_rules = $rules->{$tag}; |
| 1001 |
if ($data_field_rules) { |
| 1002 |
my $subfields_mappings = $data_field_rules->{subfields}; |
| 1003 |
my $wildcard_mappings = $subfields_mappings->{'*'}; |
| 1004 |
foreach my $subfield ($field->subfields()) { |
| 1005 |
my ($code, $data) = @{$subfield}; |
| 1006 |
my $mappings = $subfields_mappings->{$code} // []; |
| 1007 |
if (@{$mappings}) { |
| 1008 |
$self->_process_mappings($mappings, $data, $record_document, { |
| 1009 |
data_source => 'subfield', |
| 1010 |
code => $code, |
| 1011 |
field => $field |
| 1012 |
} |
| 1013 |
); |
| 1014 |
} |
| 1015 |
} |
| 1016 |
} |
| 1017 |
} |
| 1018 |
} |
| 1019 |
|
| 982 |
=head2 _marc_to_array($record) |
1020 |
=head2 _marc_to_array($record) |
| 983 |
|
1021 |
|
| 984 |
my @fields = _marc_to_array($record) |
1022 |
my @fields = _marc_to_array($record) |
| 985 |
- |
|
|