mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-32931 mod_forum Polishing patch and taking into account courses without previous accesses
This commit is contained in:
parent
28d638729d
commit
ba4ee840db
1 changed files with 23 additions and 16 deletions
|
@ -1310,26 +1310,33 @@ function forum_print_overview($courses,&$htmlarray) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Courses to search for new posts
|
||||||
// look for new posts since lastaccess
|
$coursessqls = array();
|
||||||
$course_tuples = join(
|
|
||||||
' OR ',
|
|
||||||
array_fill(0, count($visited_courses), '(f.course = ? AND p.created > ?)')
|
|
||||||
);
|
|
||||||
|
|
||||||
$sql = "SELECT f.id, COUNT(*) "
|
|
||||||
.'FROM {forum_posts} p, {forum_discussions} d, {forum} f '
|
|
||||||
.'WHERE p.discussion = d.id AND d.forum = f.id '
|
|
||||||
."AND ($course_tuples) "
|
|
||||||
."AND p.userid != ? "
|
|
||||||
."GROUP BY f.id";
|
|
||||||
|
|
||||||
$params = array();
|
$params = array();
|
||||||
foreach ($courses as $course) {
|
foreach ($courses as $course) {
|
||||||
|
|
||||||
|
// 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->id;
|
||||||
$params[] = $course->lastaccess;
|
$params[] = $course->lastaccess;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$params[] = $USER->id;
|
$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)) {
|
if (!$new = $DB->get_records_sql($sql, $params)) {
|
||||||
$new = array(); // avoid warnings
|
$new = array(); // avoid warnings
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue