bug 2860: allow setting of a syspref value to '0'

Fixed invalid test for the existence of CGI parameter; if it
is possible that the value of a parameter can be 0, it is
not sufficient to test like this:

if ($input->param('foo')) { ...

since the test will fail for *any* value that evaluates
to Perl false.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This commit is contained in:
Galen Charlton 2008-12-17 09:53:39 -06:00
parent 9ae359d89a
commit 77e545b0da
1 changed files with 12 additions and 5 deletions

View File

@ -594,12 +594,19 @@ if ($op eq 'add_form') {
my $value;
# handle multiple value strings (separated by ',')
my $params = $input->Vars;
my @values = ();
@values = split("\0",$params->{'value'}) if $params->{'value'};
for my $vl (@values) {
$value .= "$vl,";
if (defined $params->{'value'}) {
my @values = ();
@values = split("\0",$params->{'value'}) if defined($params->{'value'});
if (@values) {
$value = "";
for my $vl (@values) {
$value .= "$vl,";
}
$value =~ s/,$//;
} else {
$value = $params->{'value'};
}
}
$value =~ s/,$//;
if ($sth->rows) {
unless (C4::Context->config('demo')) {
my $sth=$dbh->prepare("update systempreferences set value=?,explanation=?,type=?,options=? where variable=?");