mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Better bracketing for event-selecting SQL (see bug 2804)
This commit is contained in:
parent
55d9c93a11
commit
6e957c415c
1 changed files with 7 additions and 8 deletions
|
@ -446,21 +446,20 @@ function calendar_sql_where($tstart, $tend, $users, $groups, $courses, $withdura
|
||||||
if(is_array($users) && !empty($users)) {
|
if(is_array($users) && !empty($users)) {
|
||||||
// Events from a number of users
|
// Events from a number of users
|
||||||
if(!empty($whereclause)) $whereclause .= ' OR';
|
if(!empty($whereclause)) $whereclause .= ' OR';
|
||||||
$whereclause .= ' userid IN ('.implode(',', $users).') AND courseid = 0 AND groupid = 0';
|
$whereclause .= ' (userid IN ('.implode(',', $users).') AND courseid = 0 AND groupid = 0)';
|
||||||
}
|
}
|
||||||
else if(is_numeric($users)) {
|
else if(is_numeric($users)) {
|
||||||
// Events from one user
|
// Events from one user
|
||||||
if(!empty($whereclause)) $whereclause .= ' OR';
|
if(!empty($whereclause)) $whereclause .= ' OR';
|
||||||
$whereclause .= ' userid = '.$users.' AND courseid = 0 AND groupid = 0';
|
$whereclause .= ' (userid = '.$users.' AND courseid = 0 AND groupid = 0)';
|
||||||
}
|
}
|
||||||
else if($users === true) {
|
else if($users === true) {
|
||||||
// Events from ALL users
|
// Events from ALL users
|
||||||
if(!empty($whereclause)) $whereclause .= ' OR';
|
if(!empty($whereclause)) $whereclause .= ' OR';
|
||||||
$whereclause .= ' userid != 0 AND courseid = 0 AND groupid = 0';
|
$whereclause .= ' (userid != 0 AND courseid = 0 AND groupid = 0)';
|
||||||
}
|
}
|
||||||
else if($users === false) {
|
else if($users === false) {
|
||||||
// No user at all
|
// No user at all, do nothing
|
||||||
// No need to do anything
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_array($groups) && !empty($groups)) {
|
if(is_array($groups) && !empty($groups)) {
|
||||||
|
@ -486,7 +485,7 @@ function calendar_sql_where($tstart, $tend, $users, $groups, $courses, $withdura
|
||||||
if(!empty($whereclause)) {
|
if(!empty($whereclause)) {
|
||||||
$whereclause .= ' OR';
|
$whereclause .= ' OR';
|
||||||
}
|
}
|
||||||
$whereclause .= ' groupid = 0 AND courseid IN ('.implode(',', $courses).')';
|
$whereclause .= ' (groupid = 0 AND courseid IN ('.implode(',', $courses).'))';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// This means NO courses, not that we don't care!
|
// This means NO courses, not that we don't care!
|
||||||
|
@ -496,12 +495,12 @@ function calendar_sql_where($tstart, $tend, $users, $groups, $courses, $withdura
|
||||||
else if(is_numeric($courses)) {
|
else if(is_numeric($courses)) {
|
||||||
// One course
|
// One course
|
||||||
if(!empty($whereclause)) $whereclause .= ' OR';
|
if(!empty($whereclause)) $whereclause .= ' OR';
|
||||||
$whereclause .= ' groupid = 0 AND courseid = '.$courses;
|
$whereclause .= ' (groupid = 0 AND courseid = '.$courses.')';
|
||||||
}
|
}
|
||||||
else if($courses === true) {
|
else if($courses === true) {
|
||||||
// Events from ALL courses
|
// Events from ALL courses
|
||||||
if(!empty($whereclause)) $whereclause .= ' OR';
|
if(!empty($whereclause)) $whereclause .= ' OR';
|
||||||
$whereclause .= ' groupid = 0 AND courseid != 0';
|
$whereclause .= ' (groupid = 0 AND courseid != 0)';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Security check: if, by now, we have NOTHING in $whereclause, then it means
|
// Security check: if, by now, we have NOTHING in $whereclause, then it means
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue