X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FLog.pm;h=6b8ff17e45b26fad3a0cb26a22bcb6b292660d46;hb=df0a6a71d7301e4e2e346bfe50e00a8e135da33e;hp=b4732acb7015231d981b93fbcc99d8da36ab0cfd;hpb=afb36c429eb77226e25d9d4fe91a7d6f9afe9ced;p=koha_gimpoz diff --git a/C4/Log.pm b/C4/Log.pm index b4732acb70..6b8ff17e45 100644 --- a/C4/Log.pm +++ b/C4/Log.pm @@ -4,6 +4,7 @@ package C4::Log; # Copyright 2000-2002 Katipo Communications +# Copyright 2011 MJ Ray and software.coop # # This file is part of Koha. # @@ -16,11 +17,13 @@ package C4::Log; # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +use warnings; + use C4::Context; use C4::Dates qw(format_date); @@ -180,9 +183,9 @@ sub displaylog { return ($count, \@results); } -=head2 GetLogs +=item GetLogs -$logs = GetLogs($datefrom,$dateto,$user,$module,$action,$object,$info); +$logs = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info); Return: C<$logs> is a ref to a hash which containts all columns from action_logs @@ -193,7 +196,7 @@ sub GetLogs { my $datefrom = shift; my $dateto = shift; my $user = shift; - my $module = shift; + my $modules = shift; my $action = shift; my $object = shift; my $info = shift; @@ -207,16 +210,33 @@ sub GetLogs { FROM action_logs WHERE 1 "; - $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') >= \"".$iso_datefrom."\" " if $iso_datefrom; + + my @parameters; + $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') >= \"".$iso_datefrom."\" " if $iso_datefrom; #fix me - mysql specific $query .= " AND DATE_FORMAT(timestamp, '%Y-%m-%d') <= \"".$iso_dateto."\" " if $iso_dateto; - $query .= " AND user LIKE \"%".$user."%\" " if $user; - $query .= " AND module LIKE \"%".$module."%\" " if $module; - $query .= " AND action LIKE \"%".$action."%\" " if $action; - $query .= " AND object LIKE \"%".$object."%\" " if $object; - $query .= " AND info LIKE \"%".$info."%\" " if $info; + if($user ne "") { + $query .= " AND user = ? "; + push(@parameters,$user); + } + if($modules && scalar(@$modules)) { + $query .= " AND module IN (".join(",",map {"?"} @$modules).") "; + push(@parameters,@$modules); + } + if($action && scalar(@$action)) { + $query .= " AND action IN (".join(",",map {"?"} @$action).") "; + push(@parameters,@$action); + } + if($object) { + $query .= " AND object = ? "; + push(@parameters,$object); + } + if($info) { + $query .= " AND info LIKE ? "; + push(@parameters,"%".$info."%"); + } my $sth = $dbh->prepare($query); - $sth->execute; + $sth->execute(@parameters); my @logs; while( my $row = $sth->fetchrow_hashref ) { @@ -233,6 +253,6 @@ __END__ =head1 AUTHOR -Koha Developement team +Koha Development Team =cut