(bug #4491) fix weird code in search scripts

This change some code a bit strange, that generate strange effetcs.
Now we use $cgi->param to get the values.
This commit is contained in:
Nahuel ANGELINETTI 2010-05-12 15:59:06 +02:00 committed by Henri-Damien LAURENT
parent 95bb8a47a8
commit cd14fd421c
2 changed files with 12 additions and 21 deletions

View File

@ -336,7 +336,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'));
@sort_by = split("\0",$params->{'sort_by'}) if $params->{'sort_by'};
@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);
@ -344,8 +344,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;
@servers = split("\0",$params->{'server'}) if $params->{'server'};
my @servers = $cgi->param('server');
unless (@servers) {
#FIXME: this should be handled using Context.pm
@servers = ("biblioserver");
@ -353,13 +352,11 @@ unless (@servers) {
}
# operators include boolean and proximity operators and are used
# to evaluate multiple operands
my @operators;
@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;
@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]) {
@ -367,12 +364,10 @@ if ($indexes[0] && !$indexes[1]) {
# an operand can be a single term, a phrase, or a complete ccl query
my @operands;
@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;
@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'})}) ;

View File

@ -244,7 +244,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'));
@sort_by = split("\0",$params->{'sort_by'}) if $params->{'sort_by'};
@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
@ -252,8 +252,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;
@servers = split("\0",$params->{'server'}) if $params->{'server'};
my @servers = $cgi->param('server');
unless (@servers) {
#FIXME: this should be handled using Context.pm
@servers = ("biblioserver");
@ -262,20 +261,18 @@ unless (@servers) {
# operators include boolean and proximity operators and are used
# to evaluate multiple operands
my @operators;
@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 = exists($params->{'idx'}) ? 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]) {
$template->param("ms_".$indexes[0] => 1);
}
# an operand can be a single term, a phrase, or a complete ccl query
my @operands;
@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]) {
@ -283,8 +280,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;
@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'})}) ;