mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 22:08:20 +01:00
MDL-62463 mod_glossary: Fix SQL query
The query was doing: WHERE c.id ... AND ... OR ... OR ... Which equates to: WHERE (c.id ... AND ...) OR ... OR ... Adding parens to: WHERE (c.id ... AND (... OR ... OR ...))
This commit is contained in:
parent
dc71a8b50e
commit
39da8c1a35
@ -130,18 +130,33 @@ class provider implements
|
||||
FROM {glossary_entries} ge
|
||||
JOIN {glossary} g ON ge.glossaryid = g.id
|
||||
JOIN {course_modules} cm ON g.id = cm.instance
|
||||
JOIN {context} c ON cm.id = c.instanceid
|
||||
JOIN {modules} m ON cm.module = m.id AND m.name = :modulename
|
||||
JOIN {context} c ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
|
||||
WHERE c.id {$contextsql}
|
||||
AND ge.userid = :userid
|
||||
OR EXISTS (SELECT 1 FROM {comments} com WHERE com.commentarea = :commentarea AND com.itemid = ge.id
|
||||
AND com.userid = :commentuserid)
|
||||
OR EXISTS (SELECT 1 FROM {rating} r WHERE r.contextid = c.id AND r.itemid = ge.id
|
||||
AND r.component = :ratingcomponent
|
||||
AND r.ratingarea = :ratingarea
|
||||
AND r.userid = :ratinguserid)
|
||||
AND (
|
||||
ge.userid = :userid
|
||||
OR
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM {comments} com
|
||||
WHERE com.commentarea = :commentarea AND com.itemid = ge.id AND com.userid = :commentuserid
|
||||
)
|
||||
OR
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM {rating} r
|
||||
WHERE r.contextid = c.id
|
||||
AND r.itemid = ge.id
|
||||
AND r.component = :ratingcomponent
|
||||
AND r.ratingarea = :ratingarea
|
||||
AND r.userid = :ratinguserid
|
||||
)
|
||||
)
|
||||
ORDER BY ge.id, cm.id";
|
||||
$params = [
|
||||
'userid' => $user->id,
|
||||
'modulename' => 'glossary',
|
||||
'contextlevel' => CONTEXT_MODULE,
|
||||
'commentarea' => 'glossary_entry',
|
||||
'commentuserid' => $user->id,
|
||||
'ratingcomponent' => 'mod_glossary',
|
||||
|
Loading…
x
Reference in New Issue
Block a user