From 37902b25a7aa5c9e1b3f90e8cbb50741b27dae1d Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Fri, 2 Sep 2011 18:39:53 +0200 Subject: [PATCH] Bug 6840 warning in logs In staff interface, in search (catalogue/search.pl), there is a warning saying: [Fri Sep 2 18:20:24 2011] search.pl: Use of uninitialized value $key in hash element at /home/paul/koha.dev/koha-community/C4/Templates.pm line 227. The problem happens when searching from the quick search toolbar, not when you search from advanced search. Investigating, it seems it's because the sort_by is not defined in this case. This patch * fixes the problem in Search.pl by setting the parameter only if there is a sort_by field * modify te Template->param sub to get a better error message. Instead of having just "use of uninitia..." get the value you try to set to an empty key. Much easier to understand which line causes the problem Signed-off-by: Owen Leonard Signed-off-by: Ian Walls Signed-off-by: Chris Cormack --- C4/Templates.pm | 6 +++++- catalogue/search.pl | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/C4/Templates.pm b/C4/Templates.pm index c3a9850c58..c2a5911e4c 100644 --- a/C4/Templates.pm +++ b/C4/Templates.pm @@ -179,7 +179,11 @@ sub param { my $val = shift; if ( ref($val) eq 'ARRAY' && !scalar @$val ) { $val = undef; } elsif ( ref($val) eq 'HASH' && !scalar %$val ) { $val = undef; } - $self->{VARS}->{$key} = $val; + if ( $key ) { + $self->{VARS}->{$key} = $val; + } else { + warn "Problem = a value of $val has been passed to param without key"; + } } } diff --git a/catalogue/search.pl b/catalogue/search.pl index 97fa3d7f61..907efdbf99 100755 --- a/catalogue/search.pl +++ b/catalogue/search.pl @@ -369,7 +369,7 @@ if ( C4::Context->preference('defaultSortField') @sort_by = split("\0",$params->{'sort_by'}) if $params->{'sort_by'}; $sort_by[0] = $default_sort_by unless $sort_by[0]; foreach my $sort (@sort_by) { - $template->param($sort => 1); + $template->param($sort => 1) if $sort; } $template->param('sort_by' => $sort_by[0]); -- 2.39.2