From 1e95d7b7a31d82648847e2ee7aecbb5dc8a8da72 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Thu, 7 Jun 2007 16:04:23 +0000 Subject: [PATCH] OU Bug 3246 - No logs shown when a group is selected. Merged from OU Moodle. Merged from MOODLE_18_STABLE. --- course/lib.php | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/course/lib.php b/course/lib.php index befebcb41b..55c63d28a2 100644 --- a/course/lib.php +++ b/course/lib.php @@ -395,19 +395,11 @@ function build_logs_array($course, $user=0, $date=0, $order="l.time ASC", $limit /// Getting all members of a group. if ($groupid and !$user) { - if ($gusers = groups_get_members($groupid)) { //TODO:check. - $first = true; - foreach($gusers as $guser) { - if ($first) { - $gselect = '(l.userid='.$guser->userid; - $first = false; - } - else { - $gselect .= ' OR l.userid='.$guser->userid; - } - } - if (!$first) $gselect .= ')'; - $joins[] = $gselect; + $gusers = groups_get_members($groupid); + if (!empty($gusers)) { + $joins[] = 'l.userid IN (' . implode(',', $gusers) . ')'; + } else { + $joins[] = 'l.userid = 0'; // No users in groups, so we want something that will always by false. } } else if ($user) { @@ -419,13 +411,9 @@ function build_logs_array($course, $user=0, $date=0, $order="l.time ASC", $limit $joins[] = "l.time > '$date' AND l.time < '$enddate'"; } - $selector = ''; - for ($i = 0; $i < count($joins); $i++) { - $selector .= $joins[$i] . (($i == count($joins)-1) ? " " : " AND "); - } + $selector = implode(' AND ', $joins); $totalcount = 0; // Initialise - $result = array(); $result['logs'] = get_logs($selector, $order, $limitfrom, $limitnum, $totalcount); $result['totalcount'] = $totalcount; @@ -485,11 +473,11 @@ function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $per echo "".get_string('info')."\n"; echo "\n"; + // Make sure that the logs array is an array, even it is empty, to avoid warnings from the foreach. if (empty($logs['logs'])) { - echo "\n"; - return; + $logs['logs'] = array(); } - + $row = 1; foreach ($logs['logs'] as $log) { -- 2.39.5