@@ -, +, @@ --- authorities/blinddetail-biblio-search.pl | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) --- a/authorities/blinddetail-biblio-search.pl +++ a/authorities/blinddetail-biblio-search.pl @@ -81,20 +81,16 @@ if ($authid) { my $repet = ($query->param('repet') || 1) - 1; my $field = $fields[$repet]; - # Get all values for each distinct subfield - my %subfields; + # Get all values for each distinct subfield and add to subfield loop + my %done_subfields; for ( $field->subfields ) { next if $_->[0] eq '9'; # $9 will be set with authid value my $letter = $_->[0]; - next if defined $subfields{$letter}; + $letter ||= '@'; + next if defined $done_subfields{$letter}; my @values = $field->subfield($letter); - $subfields{$letter} = \@values; - } - - # Add all subfields to the subfield_loop - for( keys %subfields ) { - my $letter = $_ || '@'; - push( @subfield_loop, {marc_subfield => $letter, marc_values => $subfields{$_}} ); + push @subfield_loop, {marc_subfield => $letter, marc_values => @values }; + $done_subfields{$letter} = 1; } push( @subfield_loop, { marc_subfield => 'w', marc_values => $relationship } ) if ( $relationship ); @@ -120,13 +116,6 @@ if ($authid) { my $thes_008_11 = ''; $thes_008_11 = substr($record->field('008')->data(), 11, 1) if $record->field('008')->data(); $indicator2 = defined $thes_mapping{$thes_008_11} ? $thes_mapping{$thes_008_11} : $thes_008_11; - if ($indicator2 eq '7') { - if ($thes_008_11 eq 'r') { - $subfields{'2'} = ['aat']; - } elsif ($thes_008_11 eq 's') { - $subfields{'2'} = ['sears']; - } - } } if ($tag_from eq '130') { # unified title -- the special case if ($tag_to eq '830' || $tag_to eq '240') { --