[Koha-patches] [PATCH] [SIGNED-OFF] Bug 10578 - Escaping CGI breaks results sort feature (librarian's interface)
Srdjan
srdjan at catalyst.net.nz
Thu Jul 18 06:45:51 CEST 2013
From: Janusz Kaczmarek <januszop at gmail.com>
To test (in librarian's interface):
1. Have some biblio records to get a list when searching.
2. Make an advanced search with 'as phrase' modifier (title -- ti,phr:
or author -- au,phr: , etc.)
3. Having the result list try to change the sort order.
4. You should get no results with a message like: "No results match your
search for 'au%2Cphr: " etc.
5. Apply the patch
6. Repeat steps 2. & 3.
7. You should get the list sorted according to your choice.
Signed-off-by: Srdjan <srdjan at catalyst.net.nz>
---
catalogue/search.pl | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/catalogue/search.pl b/catalogue/search.pl
index f8dab56..e1154c3 100755
--- a/catalogue/search.pl
+++ b/catalogue/search.pl
@@ -148,6 +148,7 @@ use C4::Languages qw(getAllLanguages);
use C4::Koha;
use C4::Members qw(GetMember);
use C4::VirtualShelves;
+use URI::Escape;
use POSIX qw(ceil floor);
use C4::Branch; # GetBranches
@@ -391,11 +392,11 @@ unless (@servers) {
}
# operators include boolean and proximity operators and are used
# to evaluate multiple operands
-my @operators = $cgi->param('op');
+my @operators = map uri_unescape($_), $cgi->param('op');
# indexes are query qualifiers, like 'title', 'author', etc. They
# can be single or multiple parameters separated by comma: kw,right-Truncation
-my @indexes = $cgi->param('idx');
+my @indexes = map uri_unescape($_), $cgi->param('idx');
# if a simple index (only one) display the index used in the top search box
if ($indexes[0] && (!$indexes[1] || $params->{'scan'})) {
@@ -404,12 +405,11 @@ if ($indexes[0] && (!$indexes[1] || $params->{'scan'})) {
$template->param($idx => 1);
}
-
# an operand can be a single term, a phrase, or a complete ccl query
-my @operands = $cgi->param('q');
+my @operands = map uri_unescape($_), $cgi->param('q');
# limits are use to limit to results to a pre-defined category such as branch or language
-my @limits = $cgi->param('limit');
+my @limits = map uri_unescape($_), $cgi->param('limit');
if($params->{'multibranchlimit'}) {
my $multibranch = '('.join( " or ", map { "branch: $_ " } @{ GetBranchesInCategory( $params->{'multibranchlimit'} ) } ).')';
--
1.8.1.2
More information about the Koha-patches
mailing list