MDL-31081 limit query to one course in forum_get_subscribed_forums()

This improves performance on the forum index page. Credit goes to Mark Nielsen.
This commit is contained in:
Petr Skoda
2012-01-22 14:54:43 +01:00
parent f6b4ec2b4a
commit 73eaccf60a
+3 -2
View File
@@ -4543,9 +4543,10 @@ function forum_get_subscribed_forums($course) {
$sql = "SELECT f.id
FROM {forum} f
LEFT JOIN {forum_subscriptions} fs ON (fs.forum = f.id AND fs.userid = ?)
WHERE f.forcesubscribe <> ".FORUM_DISALLOWSUBSCRIBE."
WHERE f.course = ?
AND f.forcesubscribe <> ".FORUM_DISALLOWSUBSCRIBE."
AND (f.forcesubscribe = ".FORUM_FORCESUBSCRIBE." OR fs.id IS NOT NULL)";
if ($subscribed = $DB->get_records_sql($sql, array($USER->id))) {
if ($subscribed = $DB->get_records_sql($sql, array($USER->id, $course->id))) {
foreach ($subscribed as $s) {
$subscribed[$s->id] = $s->id;
}