From 313a92324ab892179ca774742e336dc156b30a4a Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 14 Jun 2019 14:59:34 +0000 Subject: [PATCH] Bug 23122: When searching callnumber in simple search, search option is not retained This patch copies some code and markup from the staff client where call number phrase searches are correctly handled. A check for 'ms_callnumcommaphr' is copied from search_indexes.inc. Handling of commas and dashes is copied from search.pl. To test, apply the patch and make sure the OpacAddMastheadLibraryPulldown system preference is enabled. - From the OPAC main page, select "Call number" from the search pull down at the top of the page. - Perform any search (it need not return results). - Verify that the search option retains the "Call number" selection. - Repeat the test with and without the OPACNumbersPreferPhrase system preference enabled. Signed-off-by: Maryse Simard Signed-off-by: Nadine Pierre Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize --- koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc | 6 +++--- opac/opac-search.pl | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index 91f908e868..184a60527d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -191,11 +191,11 @@ [% END # /ms_se %] [% IF ( Koha.Preference('OPACNumbersPreferPhrase') ) %] - [% IF ( ms_callnum ) %] - + [% IF ( ms_callnumcommaphr ) %] + [% ELSE %] - [% END #/ms_callnum %] + [% END #/ms_callnumcommaphr %] [% ELSE %] [% IF ( ms_callnum ) %] diff --git a/opac/opac-search.pl b/opac/opac-search.pl index 309776f9f6..c39ad59b68 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -457,7 +457,10 @@ my @indexes = $cgi->multi_param('idx'); # if a simple index (only one) display the index used in the top search box if ($indexes[0] && !$indexes[1]) { - $template->param("ms_".$indexes[0] => 1); + my $idx = "ms_".$indexes[0]; + $idx =~ s/\,/comma/g; # template toolkit doesn't like variables with a , in it + $idx =~ s/-/dash/g; # template toolkit doesn't like variables with a dash in it + $template->param($idx => 1); } # an operand can be a single term, a phrase, or a complete ccl query my @operands = $cgi->multi_param('q'); -- 2.39.5