You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Fetch all Moodleoverflow discussions, moodleoverflow posts, ratings, tracking settings and subscriptions.
140
-
// FIX: split query into two parts due to a never ending database request.
141
-
$sql1 = "SELECT c.id
142
-
FROM {context} c
143
-
INNER JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
144
-
INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
145
-
INNER JOIN {moodleoverflow} mof ON mof.id = cm.instance
146
-
LEFT JOIN {moodleoverflow_discussions} d ON d.moodleoverflow = mof.id
147
-
LEFT JOIN {moodleoverflow_posts} p ON p.discussion = d.id
148
-
LEFT JOIN {moodleoverflow_read} r ON r.moodleoverflowid = mof.id
149
-
LEFT JOIN {moodleoverflow_subscriptions} s ON s.moodleoverflow = mof.id
150
-
WHERE (
151
-
d.userid = :duserid OR
152
-
d.usermodified = :dmuserid OR
153
-
p.userid = :puserid OR
154
-
r.userid = :ruserid OR
155
-
s.userid = :suserid
156
-
) GROUP BY c.id";
157
-
158
-
$sql2 = "SELECT c.id
159
-
FROM {context} c
160
-
INNER JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
161
-
INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
162
-
INNER JOIN {moodleoverflow} mof ON mof.id = cm.instance
163
-
LEFT JOIN {moodleoverflow_discuss_subs} ds ON ds.moodleoverflow = mof.id
164
-
LEFT JOIN {moodleoverflow_ratings} ra ON ra.moodleoverflowid = mof.id
165
-
LEFT JOIN {moodleoverflow_tracking} track ON track.moodleoverflowid = mof.id
166
-
LEFT JOIN {moodleoverflow_grades} g ON g.moodleoverflowid = mof.id
167
-
WHERE (
168
-
ds.userid = :dsuserid OR
169
-
ra.userid = :rauserid OR
170
-
track.userid = :userid OR
171
-
g.userid = :guserid
172
-
) GROUP BY c.id";
173
-
174
-
$params1 = [
175
-
'modname' => 'moodleoverflow',
176
-
'contextlevel' => CONTEXT_MODULE,
177
-
'duserid' => $userid,
178
-
'dmuserid' => $userid,
179
-
'puserid' => $userid,
180
-
'ruserid' => $userid,
181
-
'suserid' => $userid
182
-
];
140
+
$sql = "SELECT c.id
141
+
FROM {context} c
142
+
INNER JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
143
+
INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
144
+
INNER JOIN {moodleoverflow} mof ON mof.id = cm.instance
145
+
WHERE EXISTS (
146
+
SELECT 1 FROM {moodleoverflow_discussions} d WHERE d.moodleoverflow = mof.id AND (d.userid = :userid OR d.usermodified = :userid)
147
+
) OR EXISTS (
148
+
SELECT 1 FROM {moodleoverflow_posts} p WHERE p.discussion IN (SELECT id FROM {moodleoverflow_discussions} WHERE moodleoverflow = mof.id) AND p.userid = :userid
149
+
) OR EXISTS (
150
+
SELECT 1 FROM {moodleoverflow_read} r WHERE r.moodleoverflowid = mof.id AND r.userid = :userid
151
+
) OR EXISTS (
152
+
SELECT 1 FROM {moodleoverflow_subscriptions} s WHERE s.moodleoverflow = mof.id AND s.userid = :userid
153
+
) OR EXISTS (
154
+
SELECT 1 FROM {moodleoverflow_discuss_subs} ds WHERE ds.moodleoverflow = mof.id AND ds.userid = :userid
155
+
) OR EXISTS (
156
+
SELECT 1 FROM {moodleoverflow_ratings} ra WHERE ra.moodleoverflowid = mof.id AND ra.userid = :userid
157
+
) OR EXISTS (
158
+
SELECT 1 FROM {moodleoverflow_tracking} track WHERE track.moodleoverflowid = mof.id AND track.userid = :userid
159
+
) OR EXISTS (
160
+
SELECT 1 FROM {moodleoverflow_grades} g WHERE g.moodleoverflowid = mof.id AND g.userid = :userid
161
+
);"
183
162
184
-
$params2 = [
163
+
$params = [
185
164
'modname' => 'moodleoverflow',
186
165
'contextlevel' => CONTEXT_MODULE,
187
-
'dsuserid' => $userid,
188
-
'rauserid' => $userid,
189
-
'userid' => $userid,
190
-
'guserid' => $userid
166
+
'userid' => $userid
191
167
];
192
168
193
169
$contextlist = new \core_privacy\local\request\contextlist();
0 commit comments