mirror of
https://github.com/moodle/moodle.git
synced 2025-08-08 10:26:40 +02:00
Merge branch 'MDL-32931_23' of git://github.com/dmonllao/moodle into MOODLE_23_STABLE
This commit is contained in:
commit
fe2ff1e8a0
1 changed files with 23 additions and 13 deletions
|
@ -1310,23 +1310,33 @@ function forum_print_overview($courses,&$htmlarray) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
// get all forum logs in ONE query (much better!)
|
||||
// Courses to search for new posts
|
||||
$coursessqls = array();
|
||||
$params = array();
|
||||
$sql = "SELECT instance,cmid,l.course,COUNT(l.id) as count FROM {log} l "
|
||||
." JOIN {course_modules} cm ON cm.id = cmid "
|
||||
." WHERE (";
|
||||
foreach ($courses as $course) {
|
||||
$sql .= '(l.course = ? AND l.time > ?) OR ';
|
||||
$params[] = $course->id;
|
||||
$params[] = $course->lastaccess;
|
||||
|
||||
// If the user has never entered into the course all posts are pending
|
||||
if ($course->lastaccess == 0) {
|
||||
$coursessqls[] = '(f.course = ?)';
|
||||
$params[] = $course->id;
|
||||
|
||||
// Only posts created after the course last access
|
||||
} else {
|
||||
$coursessqls[] = '(f.course = ? AND p.created > ?)';
|
||||
$params[] = $course->id;
|
||||
$params[] = $course->lastaccess;
|
||||
}
|
||||
}
|
||||
$sql = substr($sql,0,-3); // take off the last OR
|
||||
|
||||
$sql .= ") AND l.module = 'forum' AND action = 'add post' "
|
||||
." AND userid != ? GROUP BY cmid,l.course,instance";
|
||||
|
||||
$params[] = $USER->id;
|
||||
$coursessql = implode(' OR ', $coursessqls);
|
||||
|
||||
$sql = "SELECT f.id, COUNT(*) as count "
|
||||
.'FROM {forum} f '
|
||||
.'JOIN {forum_discussions} d ON d.forum = f.id '
|
||||
.'JOIN {forum_posts} p ON p.discussion = d.id '
|
||||
."WHERE ($coursessql) "
|
||||
.'AND p.userid != ? '
|
||||
.'GROUP BY f.id';
|
||||
|
||||
if (!$new = $DB->get_records_sql($sql, $params)) {
|
||||
$new = array(); // avoid warnings
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue