Bugzilla – Attachment 3200 Details for
Bug 4945
Patron search is limited by default to the currently logged-in library
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Alternative patch with new preference
patch.txt (text/plain), 6.32 KB, created by
Marcel de Rooy
on 2011-02-24 10:31:26 UTC
(
hide
)
Description:
Alternative patch with new preference
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2011-02-24 10:31:26 UTC
Size:
6.32 KB
patch
obsolete
>From 63663b2acaff0cebc1696d6ea467dda03e6d27fd Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Thu, 24 Feb 2011 10:36:00 +0100 >Subject: [PATCH] 3154 Preference for building facets >Content-Type: text/plain; charset="utf-8" > >Patch from Fridolyn Somers with input of Frederic Demians. >I only added new Searching preference maxRecordsForFacets. >This pref contains number of result records used in facet building. >Pref not needed in update script; default 20 is used if it should not yet exist. >--- > C4/Search.pm | 72 +++++++++++++------- > .../en/modules/admin/preferences/searching.pref | 6 ++ > 2 files changed, 53 insertions(+), 25 deletions(-) > >diff --git a/C4/Search.pm b/C4/Search.pm >index a469948..a33e5e2 100644 >--- a/C4/Search.pm >+++ b/C4/Search.pm >@@ -309,6 +309,7 @@ sub getRecords { > my $facets_counter = (); > my $facets_info = (); > my $facets = getFacets(); >+ my $facets_maxrecs = C4::Context->preference('maxRecordsForFacets')||20; > > my @facets_loop; # stores the ref to array of hashes for template facets loop > >@@ -418,7 +419,6 @@ sub getRecords { > for ( my $j = $offset ; $j < $times ; $j++ ) { > my $records_hash; > my $record; >- my $facet_record; > > ## Check if it's an index scan > if ($scan) { >@@ -451,33 +451,55 @@ sub getRecords { > > # warn "RECORD $j:".$record; > $results_hash->{'RECORDS'}[$j] = $record; >- >- # Fill the facets while we're looping, but only for the biblioserver >- $facet_record = MARC::Record->new_from_usmarc($record) >- if $servers[ $i - 1 ] =~ /biblioserver/; >- >- #warn $servers[$i-1]."\n".$record; #.$facet_record->title(); >- if ($facet_record) { >- for ( my $k = 0 ; $k <= @$facets ; $k++ ) { >- ($facets->[$k]) or next; >- my @fields = map {$facet_record->field($_)} @{$facets->[$k]->{'tags'}} ; >- for my $field (@fields) { >- my @subfields = $field->subfields(); >- for my $subfield (@subfields) { >- my ( $code, $data ) = @$subfield; >- ($code eq $facets->[$k]->{'subfield'}) or next; >- $facets_counter->{ $facets->[$k]->{'link_value'} }->{$data}++; >- } >- } >- $facets_info->{ $facets->[$k]->{'link_value'} }->{'label_value'} = >- $facets->[$k]->{'label_value'}; >- $facets_info->{ $facets->[$k]->{'link_value'} }->{'expanded'} = >- $facets->[$k]->{'expanded'}; >- } >- } > } >+ > } > $results_hashref->{ $servers[ $i - 1 ] } = $results_hash; >+ >+ # Fill the facets while we're looping, but only for the biblioserver and not for a scan >+ if ( !$scan && $servers[ $i - 1 ] =~ /biblioserver/ ) { >+ >+ my $jmax = $size>$facets_maxrecs? $facets_maxrecs: $size; >+ >+ for ( my $k = 0 ; $k <= @$facets ; $k++ ) { >+ ($facets->[$k]) or next; >+ my @fcodes = @{$facets->[$k]->{'tags'}}; >+ my $sfcode = $facets->[$k]->{'subfield'}; >+ >+ for ( my $j = 0 ; $j < $jmax ; $j++ ) { >+ my $render_record = $results[ $i - 1 ]->record($j)->render(); >+ my @used_datas = (); >+ >+ foreach my $fcode (@fcodes) { >+ >+ # avoid first line >+ my $field_pattern = '\n'.$fcode.' ([^\n]+)'; >+ my @field_tokens = ( $render_record =~ /$field_pattern/g ) ; >+ >+ foreach my $field_token (@field_tokens) { >+ my $subfield_pattern = '\$'.$sfcode.' ([^\$]+)'; >+ my @subfield_values = ( $field_token =~ /$subfield_pattern/g ); >+ >+ foreach my $subfield_value (@subfield_values) { >+ >+ my $data = $subfield_value; >+ $data =~ s/^\s+//; # trim left >+ $data =~ s/\s+$//; # trim right >+ >+ unless ( $data ~~ @used_datas ) { >+ $facets_counter->{ $facets->[$k]->{'link_value'} }->{$data}++; >+ push @used_datas, $data; >+ } >+ } # subfields >+ } # fields >+ } # field codes >+ } # records >+ >+ $facets_info->{ $facets->[$k]->{'link_value'} }->{'label_value'} = $facets->[$k]->{'label_value'}; >+ $facets_info->{ $facets->[$k]->{'link_value'} }->{'expanded'} = $facets->[$k]->{'expanded'}; >+ } # facets >+ } >+ # End PROGILONE > } > > # warn "connection ", $i-1, ": $size hits"; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref >index cd924dc..ba969ae 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref >@@ -122,6 +122,12 @@ Searching: > class: integer > - items per biblio in the search results > - >+ - Build facets based on >+ - pref: maxRecordsForFacets >+ class: integer >+ default: 20 >+ - records from the search results. >+ - > - By default, show > - pref: OPACnumSearchResults > class: integer >-- >1.6.0.6 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 4945
:
2558
|
3200