|
Lines 148-154
sub authorities {
Link Here
|
| 148 |
my $self = shift; |
148 |
my $self = shift; |
| 149 |
my $skipmetadata = shift; |
149 |
my $skipmetadata = shift; |
| 150 |
my ( $results, $total ) = _search( $self, 'match-heading', $skipmetadata ); |
150 |
my ( $results, $total ) = _search( $self, 'match-heading', $skipmetadata ); |
| 151 |
return $results; |
151 |
return $self->_filter_exact($results); |
| 152 |
} |
152 |
} |
| 153 |
|
153 |
|
| 154 |
=head2 preferred_authorities |
154 |
=head2 preferred_authorities |
|
Lines 266-271
sub _search {
Link Here
|
| 266 |
|
266 |
|
| 267 |
} |
267 |
} |
| 268 |
|
268 |
|
|
|
269 |
=head2 _filter_exact |
| 270 |
|
| 271 |
=cut |
| 272 |
|
| 273 |
sub _filter_exact { |
| 274 |
my $self = shift; |
| 275 |
my $results = shift; |
| 276 |
my $exact_matched_auths = []; |
| 277 |
for my $matched_auth (@$results) { |
| 278 |
my $auth = Koha::Authorities->find( $matched_auth->{authid} ); |
| 279 |
next unless $auth; |
| 280 |
my $authrec = $auth->record; |
| 281 |
my $auth_tag_to_report = Koha::Authority::Types->find( $self->{auth_type} )->auth_tag_to_report; |
| 282 |
my $auth_heading_field = $authrec->field($auth_tag_to_report); |
| 283 |
$auth_heading_field->set_tag( $self->field->tag ); |
| 284 |
my $auth_heading = C4::Heading->new_from_field($auth_heading_field); |
| 285 |
if ( $auth_heading->search_form eq $self->search_form ) { |
| 286 |
push @$exact_matched_auths, $matched_auth; |
| 287 |
} |
| 288 |
} |
| 289 |
return $exact_matched_auths; |
| 290 |
} |
| 291 |
|
| 269 |
=head1 INTERNAL FUNCTIONS |
292 |
=head1 INTERNAL FUNCTIONS |
| 270 |
|
293 |
|
| 271 |
=head2 _marc_format_handler |
294 |
=head2 _marc_format_handler |
| 272 |
- |
|
|