[Koha-patches] [PATCH] (bug #4491) fix weird code in search scripts

Nahuel ANGELINETTI nahuel.angelinetti at biblibre.com
Wed May 12 16:06:31 CEST 2010


This change some code a bit strange, that generate strange effetcs.
Now we use $cgi->param to get the values.
---
 catalogue/search.pl |   17 ++++++-----------
 opac/opac-search.pl |   17 ++++++-----------
 2 files changed, 12 insertions(+), 22 deletions(-)

diff --git a/catalogue/search.pl b/catalogue/search.pl
index 86a312b..c25dce6 100755
--- a/catalogue/search.pl
+++ b/catalogue/search.pl
@@ -345,7 +345,7 @@ my @sort_by;
 my $default_sort_by = C4::Context->preference('defaultSortField') . "_" . C4::Context->preference('defaultSortOrder')
   if ( C4::Context->preference('defaultSortField') && C4::Context->preference('defaultSortOrder') );
 
- at sort_by = split( "\0", $params->{'sort_by'} ) if $params->{'sort_by'};
+ at sort_by = $cgi->param('sort_by');
 $sort_by[0] = $default_sort_by unless $sort_by[0];
 foreach my $sort (@sort_by) {
     $template->param( $sort => 1 );
@@ -353,8 +353,7 @@ foreach my $sort (@sort_by) {
 $template->param( 'sort_by' => $sort_by[0] );
 
 # Use the servers defined, or just search our local catalog(default)
-my @servers;
- at servers = split( "\0", $params->{'server'} ) if $params->{'server'};
+my @servers = $cgi->param('server');
 unless (@servers) {
 
     #FIXME: this should be handled using Context.pm
@@ -365,13 +364,11 @@ unless (@servers) {
 
 # operators include boolean and proximity operators and are used
 # to evaluate multiple operands
-my @operators;
- at operators = split( "\0", $params->{'op'} ) if $params->{'op'};
+my @operators = $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;
- at indexes = split( "\0", $params->{'idx'} );
+my @indexes = $cgi->param('idx');
 
 # if a simple index (only one)  display the index used in the top search box
 if ( $indexes[0] && !$indexes[1] ) {
@@ -379,12 +376,10 @@ if ( $indexes[0] && !$indexes[1] ) {
 }
 
 # an operand can be a single term, a phrase, or a complete ccl query
-my @operands;
- at operands = split( "\0", $params->{'q'} ) if $params->{'q'};
+my @operands = $cgi->param('q');
 
 # limits are use to limit to results to a pre-defined category such as branch or language
-my @limits;
- at limits = split( "\0", $params->{'limit'} ) if $params->{'limit'};
+my @limits = $cgi->param('limit');
 
 if ( $params->{'multibranchlimit'} ) {
     push @limits, join( " or ", map { "branch: $_ " } @{ GetBranchesInCategory( $params->{'multibranchlimit'} ) } );
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index deb26c9..8ff9dd8 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -267,7 +267,7 @@ my @sort_by;
 my $default_sort_by = C4::Context->preference('OPACdefaultSortField') . "_" . C4::Context->preference('OPACdefaultSortOrder')
   if ( C4::Context->preference('OPACdefaultSortField') && C4::Context->preference('OPACdefaultSortOrder') );
 
- at sort_by = split( "\0", $params->{'sort_by'} ) if $params->{'sort_by'};
+ at sort_by = $cgi->param('sort_by');
 $sort_by[0] = $default_sort_by if !$sort_by[0] && defined($default_sort_by);
 foreach my $sort (@sort_by) {
     $template->param( $sort => 1 );    # FIXME: security hole.  can set any TMPL_VAR here
@@ -275,8 +275,7 @@ foreach my $sort (@sort_by) {
 $template->param( 'sort_by' => $sort_by[0] );
 
 # Use the servers defined, or just search our local catalog(default)
-my @servers;
- at servers = split( "\0", $params->{'server'} ) if $params->{'server'};
+my @servers = $cgi->param('server');
 unless (@servers) {
 
     #FIXME: this should be handled using Context.pm
@@ -287,13 +286,11 @@ unless (@servers) {
 
 # operators include boolean and proximity operators and are used
 # to evaluate multiple operands
-my @operators;
- at operators = split( "\0", $params->{'op'} ) if $params->{'op'};
+my @operators = $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;
- at indexes = split( "\0", $params->{'idx'} ) if $params->{'idx'};
+my @indexes = $cgi->param('idx');
 
 # if a simple index (only one)  display the index used in the top search box
 if ( $indexes[0] && !$indexes[1] ) {
@@ -301,8 +298,7 @@ if ( $indexes[0] && !$indexes[1] ) {
 }
 
 # an operand can be a single term, a phrase, or a complete ccl query
-my @operands;
- at operands = split( "\0", $params->{'q'} ) if $params->{'q'};
+my @operands = $cgi->param('q');
 
 # if a simple search, display the value in the search box
 if ( $operands[0] && !$operands[1] ) {
@@ -310,8 +306,7 @@ if ( $operands[0] && !$operands[1] ) {
 }
 
 # limits are use to limit to results to a pre-defined category such as branch or language
-my @limits;
- at limits = split( "\0", $params->{'limit'} ) if $params->{'limit'};
+my @limits = $cgi->param('limit');
 
 if ( $params->{'multibranchlimit'} ) {
     push @limits, join( " or ", map { "branch: $_ " } @{ GetBranchesInCategory( $params->{'multibranchlimit'} ) } );
-- 
1.7.0.4




More information about the Koha-patches mailing list