next;
}
- my ( $authid, $fuzzy ) = $linker->get_link($heading);
+ my ( $authid, $fuzzy, $match_count ) = $linker->get_link($heading);
if ($authid) {
$results{ $fuzzy ? 'fuzzy' : 'linked' }
->{ $heading->display_form() }++;
if ( _check_valid_auth_link( $current_link, $field ) ) {
$results{'linked'}->{ $heading->display_form() }++;
}
- else {
+ elsif ( !$match_count ) {
my $authority_type = Koha::Authority::Types->find( $heading->auth_type() );
my $marcrecordauth = MARC::Record->new();
if ( C4::Context->preference('marcflavour') eq 'MARC21' ) {
my $auth_type = $heading->auth_type();
my $authid;
my $fuzzy = 0;
+ my $match_count;
if ( $self->{'cache'}->{$search_form.$auth_type}->{'cached'} ) {
$authid = $self->{'cache'}->{$search_form.$auth_type}->{'authid'};
# look for matching authorities
my $authorities = $heading->authorities(1); # $skipmetadata = true
+ $match_count = scalar @$authorities;
if ( $behavior eq 'default' && $#{$authorities} == 0 ) {
$authid = $authorities->[0]->{'authid'};
$self->{'cache'}->{$search_form.$auth_type}->{'authid'} = $authid;
$self->{'cache'}->{$search_form.$auth_type}->{'fuzzy'} = $fuzzy;
}
- return $self->SUPER::_handle_auth_limit($authid), $fuzzy;
+ return $self->SUPER::_handle_auth_limit($authid), $fuzzy, $match_count;
}
sub update_cache {