View | Details | Raw Unified | Return to bug 3216
Collapse All | Expand All

(-)a/C4/Koha.pm (-1 / +1 lines)
Lines 703-709 sub getFacets { Link Here
703
                link_value  => 'au',
703
                link_value  => 'au',
704
                label_value => 'Authors',
704
                label_value => 'Authors',
705
                tags        => [ '700', '701', '702', ],
705
                tags        => [ '700', '701', '702', ],
706
                subfield    => 'a',
706
                subfield    => 'ab',
707
            },
707
            },
708
            {
708
            {
709
                link_value  => 'se',
709
                link_value  => 'se',
(-)a/C4/Search.pm (-16 / +15 lines)
Lines 473-479 sub getRecords { Link Here
473
                        ($facets->[$k]) or next;
473
                        ($facets->[$k]) or next;
474
                        my @fcodes = @{$facets->[$k]->{'tags'}};
474
                        my @fcodes = @{$facets->[$k]->{'tags'}};
475
                        my $sfcode = $facets->[$k]->{'subfield'};
475
                        my $sfcode = $facets->[$k]->{'subfield'};
476
476
                        my @sfcodes = split('', $sfcode);
477
		                for ( my $j = 0 ; $j < $jmax ; $j++ ) {
477
		                for ( my $j = 0 ; $j < $jmax ; $j++ ) {
478
		                    my $render_record = $results[ $i - 1 ]->record($j)->render();
478
		                    my $render_record = $results[ $i - 1 ]->record($j)->render();
479
                            my @used_datas = ();
479
                            my @used_datas = ();
Lines 483-504 sub getRecords { Link Here
483
                                # avoid first line
483
                                # avoid first line
484
                                my $field_pattern = '\n'.$fcode.' ([^\n]+)';
484
                                my $field_pattern = '\n'.$fcode.' ([^\n]+)';
485
                                my @field_tokens = ( $render_record =~ /$field_pattern/g ) ;
485
                                my @field_tokens = ( $render_record =~ /$field_pattern/g ) ;
486
487
                                foreach my $field_token (@field_tokens) {
486
                                foreach my $field_token (@field_tokens) {
488
                                    my $subfield_pattern = '\$'.$sfcode.' ([^\$]+)';
487
                                    my @subf = ( $field_token =~ /\$([a-zA-Z0-9]) ([^\$]+)/g );
489
                                    my @subfield_values = ( $field_token =~ /$subfield_pattern/g );
488
                                    my @values;
490
489
                                    for (my $i = 0; $i < @subf; $i += 2) {
491
                                    foreach my $subfield_value (@subfield_values) {
490
                                        if ( $sfcode =~ $subf[$i] ) {
492
491
                                             my $value = $subf[$i+1];
493
                                        my $data = $subfield_value;
492
                                             $value =~ s/^ *//;
494
                                        $data =~ s/^\s+//; # trim left
493
                                             $value =~ s/ *$//;
495
                                        $data =~ s/\s+$//; # trim right
494
                                             push @values, $value;
496
497
                                        unless ( $data ~~ @used_datas ) {
498
                                            $facets_counter->{ $facets->[$k]->{'link_value'} }->{$data}++;
499
                                            push @used_datas, $data;
500
                                        }
495
                                        }
501
                                    } # subfields
496
                                    }
497
                                    my $data = join(', ', @values);
498
                                    unless ( $data ~~ @used_datas ) {
499
                                        $facets_counter->{ $facets->[$k]->{'link_value'} }->{$data}++;
500
                                        push @used_datas, $data;
501
                                    }
502
                                } # fields
502
                                } # fields
503
                            } # field codes
503
                            } # field codes
504
                        } # records
504
                        } # records
505
- 

Return to bug 3216