Bugzilla – Attachment 11769 Details for
Bug 8206
Add additional search options to authority browser in OPAC
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 8206: Specify index in OPAC authority search
patch.txt (text/plain), 6.82 KB, created by
Marcel de Rooy
on 2012-08-23 09:39:00 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 8206: Specify index in OPAC authority search
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2012-08-23 09:39:00 UTC
Size:
6.82 KB
patch
obsolete
>From 385f2e490ecde42a0fad629641752fa220585ac4 Mon Sep 17 00:00:00 2001 >From: Jared Camins-Esakov <jcamins@cpbibliography.com> >Date: Wed, 30 May 2012 11:02:51 -0400 >Subject: [PATCH] Bug 8206: Specify index in OPAC authority search >Content-Type: text/plain; charset="utf-8" > >Adds a dropdown to allow the user to choose to search the 'mainentry,' >and 'match-heading'indexes, in addition to the 'any' index which is >the default. > >To test (you will need authority records with see-from and >see-also headings): >1. Go to the browse subjects and authors section in the OPAC >2. Do a search for a fairly generic term that is used as a > see-also term in a lot of records. Note that your search > results include both the record that you wanted and all > the other records that refer to it. >3. Apply the patch. >4. Repeat the search from step 2. Notice there is no change > to the results. >5. Repeat the search from step 2, but choose "in main entry" > and observe that you are now only seeing authority records > with the search entered in their main entry. >6. Repeat the search from step 2, but choose "in any heading" > and observe that the results are the same as in step 2. This > is intentional, so that in the future notes in authorities > can be made searchable. >7. Search for an obsolete form of heading with the "in keyword" > option selected. Notice what results you get. > >Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> >Works nicely. Hiding the new options can be done with CSS: > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > C4/AuthoritiesMarc.pm | 8 ++++---- > .../prog/en/modules/opac-authorities-home.tt | 14 +++++++++----- > opac/opac-authorities-home.pl | 20 ++++++-------------- > 3 files changed, 19 insertions(+), 23 deletions(-) > >diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm >index 21ebd94..5cc51a5 100644 >--- a/C4/AuthoritiesMarc.pm >+++ b/C4/AuthoritiesMarc.pm >@@ -199,7 +199,7 @@ sub SearchAuthorities { > } > } else { > my $query; >- my $attr; >+ my $attr = ''; > # the marclist may contain "mainentry". In this case, search the tag_to_report, that depends on > # the authtypecode. Then, search on $a of this tag_to_report > # also store main entry MARC tag, to extract it at end of search >@@ -230,9 +230,6 @@ sub SearchAuthorities { > elsif ( @$tags[$i] eq "mainentry" ) { > $attr = " \@attr 1=Heading "; > } >- elsif ( @$tags[$i] eq "any" ) { >- $attr = " \@attr 1=Any "; >- } > elsif ( @$tags[$i] eq "match" ) { > $attr = " \@attr 1=Match "; > } >@@ -245,6 +242,9 @@ sub SearchAuthorities { > elsif ( @$tags[$i] eq "thesaurus" ) { > $attr = " \@attr 1=Subject-heading-thesaurus "; > } >+ else { # Assume any if no index was specified >+ $attr = " \@attr 1=Any "; >+ } > if ( @$operator[$i] eq 'is' ) { > $attr .= " \@attr 4=1 \@attr 5=100 " > ; ##Phrase, No truncation,all of subfield field must match >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-authorities-home.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-authorities-home.tt >index 04d5a8c..f72d6a6 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-authorities-home.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-authorities-home.tt >@@ -22,15 +22,19 @@ > [% END %] > [% END %] > </select> >- <select name="operatorc" id="anywhere"> >+ <select name="operator" id="anywhere"> > <option value="contains">contains</option> > <option value="start">starts with</option> > <option value="is">is exactly</option> > </select> >- <input type="text" name="valuec" id="anywhere_value" value="[% value %]" /> >- <input type="hidden" name="marclistc" value="" /> >- <input type="hidden" name="and_ora" value="and" /> >- <input type="hidden" name="excludingc" value="" /> >+ <input type="text" name="value" id="value" value="[% value %]" /> >+ <select name="marclist" id="marclist"> >+ <option value="any" selected="selected">in keyword</option> >+ <option value="mainentry">in main entry</option> >+ <option value="match">in any heading</option> >+ </select> >+ <input type="hidden" name="and_ora" value="and" /> >+ <input type="hidden" name="excluding" value="" /> > </li> > <li><label for="orderby">Order by: </label><select name="orderby" id="orderby"> > <option value="">None</option> >diff --git a/opac/opac-authorities-home.pl b/opac/opac-authorities-home.pl >index 4e9f9ab..5656228 100755 >--- a/opac/opac-authorities-home.pl >+++ b/opac/opac-authorities-home.pl >@@ -58,12 +58,12 @@ foreach my $thisauthtype ( > } > > if ( $op eq "do_search" ) { >- my @marclist = ($query->param('marclista'),$query->param('marclistb'),$query->param('marclistc')); >- my @and_or = ($query->param('and_ora'),$query->param('and_orb'),$query->param('and_orc')); >- my @excluding = ($query->param('excludinga'),$query->param('excludingb'),$query->param('excludingc'),); >- my @operator = ($query->param('operatora'),$query->param('operatorb'),$query->param('operatorc')); >+ my @marclist = ($query->param('marclist')); >+ my @and_or = ($query->param('and_or')); >+ my @excluding = ($query->param('excluding'),); >+ my @operator = ($query->param('operator')); > my $orderby = $query->param('orderby'); >- my @value = ($query->param('valuea') || "",$query->param('valueb') || "",$query->param('valuec') || "",); >+ my @value = ($query->param('value') || "",); > > $resultsperpage = $query->param('resultsperpage'); > $resultsperpage = 20 if ( !defined $resultsperpage ); >@@ -90,15 +90,7 @@ if ( $op eq "do_search" ) { > $displaynext = 1; > } > >- my @field_data = (); >- >- foreach my $letter (qw/a b c/){ >- push @field_data, { term => "marclist$letter" , val => $query->param("marclist$letter") || ''}; >- push @field_data, { term => "and_or$letter" , val => $query->param("and_or$letter") || ''}; >- push @field_data, { term => "excluding$letter" , val => $query->param("excluding$letter") || ''}; >- push @field_data, { term => "operator$letter" , val => $query->param("operator$letter") || ''}; >- push @field_data, { term => "value$letter" , val => $query->param("value$letter") || ''}; >- } >+ my @field_data = ( { term => "marclist" , val => $query->param("marclist") || ''} ); > > my @numbers = (); > >-- >1.7.7.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 8206
:
10266
|
10304
|
10310
|
10315
|
10644
|
10860
| 11769 |
11770
|
11771