[Koha-patches] [PATCH] [SIGNED-OFF] Bug 6840 warning in logs

Owen Leonard oleonard at myacpl.org
Fri Sep 30 20:40:02 CEST 2011


From: Paul Poulain <paul.poulain at biblibre.com>

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 <oleonard at myacpl.org>
---
 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 c3a9850..c2a5911 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 97fa3d7..907efdb 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]);
 
-- 
1.7.3



More information about the Koha-patches mailing list