diff --git a/group/db/dbbasicgrouplib.php b/group/db/dbbasicgrouplib.php index 6be3ea81182..5bfade450de 100644 --- a/group/db/dbbasicgrouplib.php +++ b/group/db/dbbasicgrouplib.php @@ -99,13 +99,13 @@ function groups_db_get_groups_for_user($userid, $courseid) { $groupids = false; } else { global $CFG; - $sql = "SELECT g.id, userid - FROM {$CFG->prefix}groups_members AS gm - INNER JOIN {$CFG->prefix}groups AS g + $sql = "SELECT g.id, gm.userid + FROM {$CFG->prefix}groups_members gm + INNER JOIN {$CFG->prefix}groups g ON gm.groupid = g.id - INNER JOIN {$CFG->prefix}groups_courses_groups AS cg + INNER JOIN {$CFG->prefix}groups_courses_groups cg ON g.id = cg.groupid - WHERE cg.courseid = $courseid AND gm.userid=$userid"; + WHERE cg.courseid = '$courseid' AND gm.userid = '$userid'"; $groups = get_records_sql($sql); $groupids = groups_groups_to_groupids($groups); @@ -152,10 +152,10 @@ function groups_db_get_group_settings($groupid, $courseid=false, $alldata=false) function groups_db_users_in_common_group($userid1, $userid2) { global $CFG; $havecommongroup = false; - $sql = "SELECT gm1.groupid, 1 FROM {$CFG->prefix}groups_members AS gm1 " . - "INNER JOIN {$CFG->prefix}groups_members AS gm2 " . - "ON gm1.groupid =gm2.groupid" . - "WHERE gm1.userid = $userid1 AND gm2.userid = $userid2"; + $sql = "SELECT gm1.groupid, 1 FROM {$CFG->prefix}groups_membersgm1 " . + "INNER JOIN {$CFG->prefix}groups_members gm2 " . + "ON gm1.groupid = gm2.groupid" . + "WHERE gm1.userid = '$userid1' AND gm2.userid = '$userid2'"; $commongroups = get_record_sql($sql); if ($commongroups) { $havecommongroup = true; @@ -188,6 +188,29 @@ function groups_db_group_exists($groupid) { } +/** + * Determine if a course ID, group name and description match a group in the database. + * For backup/restorelib.php + * @return mixed A group-like object with $group->id, or false. + */ +function groups_db_group_matches($courseid, $grp_name, $grp_description) { +//$gro_db->id; $gro_db = get_record("groups","courseid",$restore->course_id,"name",$gro->name,"description",$gro->description); + global $CFG; + $sql = "SELECT g.id, g.name, g.description + FROM {$CFG->prefix}groups g + INNER JOIN {$CFG->prefix}groups_courses_groups cg ON g.id = cg.groupid + WHERE g.name = '$grp_name' + AND g.description = '$grp_description' + AND cg.courseid = '$courseid'"; + $records = get_records_sql($sql); + $group = false; + if ($records) { + $group = $records[0]; + } + return $group; +} + + /** * Determines if a specified user is a member of a specified group * @param int $groupid The group about which the request has been made diff --git a/group/db/dbgroupinglib.php b/group/db/dbgroupinglib.php index 98795d5bf74..aa06598334e 100644 --- a/group/db/dbgroupinglib.php +++ b/group/db/dbgroupinglib.php @@ -214,10 +214,10 @@ function groups_db_grouping_exists($groupingid) { } else { global $CFG; $sql = "SELECT gm.id - FROM {$CFG->prefix}groups_groupings_groups AS gg - INNER JOIN {$CFG->prefix}groups_members AS gm + FROM {$CFG->prefix}groups_groupings_groups gg + INNER JOIN {$CFG->prefix}groups_members gm ON gg.groupid = gm.groupid - WHERE gm.userid = $userid AND gg.groupingid = $groupingid"; + WHERE gm.userid = '$userid' AND gg.groupingid = '$groupingid'"; $belongstogroup = record_exists_sql($sql); } return $belongstogroup; diff --git a/group/lib/basicgrouplib.php b/group/lib/basicgrouplib.php index b36ee8f1fc1..8cb78c83930 100644 --- a/group/lib/basicgrouplib.php +++ b/group/lib/basicgrouplib.php @@ -196,28 +196,17 @@ function groups_group_exists($groupid) { return groups_db_group_exists($groupid); } + /** * Determine if a course ID, group name and description match a group in the database. * For backup/restorelib.php * @return mixed A group-like object with $group->id, or false. */ function groups_group_matches($courseid, $grp_name, $grp_description) { -//$gro_db->id; $gro_db = get_record("groups","courseid",$restore->course_id,"name",$gro->name,"description",$gro->description); - global $CFG; - $sql = "SELECT g.id, g.name, g.description - FROM {$CFG->prefix}groups AS g - INNER JOIN {$CFG->prefix}groups_courses_groups AS cg ON g.id = cg.groupid - WHERE g.name = '$grp_name' - AND g.description = '$grp_description' - AND cg.courseid = '$courseid'"; - $records = get_records_sql($sql); - $group = false; - if ($records) { - $group = $records[0]; - } - return $group; + return groups_db_group_matches($courseid, $grp_name, $grp_description); } + /** * Determines if a specified user is a member of a specified group * @param int $groupid The group about which the request has been made diff --git a/group/lib/groupinglib.php b/group/lib/groupinglib.php index 515d90d1624..fc2bffd4ea1 100644 --- a/group/lib/groupinglib.php +++ b/group/lib/groupinglib.php @@ -36,8 +36,8 @@ function groups_get_grouping_records($courseid) { return false; } $sql = "SELECT gg.* - FROM {$CFG->prefix}groups_groupings AS gg - INNER JOIN {$CFG->prefix}groups_courses_groupings AS cg ON gg.id = cg.groupingid + FROM {$CFG->prefix}groups_groupings gg + INNER JOIN {$CFG->prefix}groups_courses_groupings cg ON gg.id = cg.groupingid WHERE cg.courseid = '$courseid'"; $groupings = get_records_sql($sql); return $groupings; @@ -130,11 +130,11 @@ function groups_get_groups_not_in_any_grouping($courseid) { $join = ''; $where= ''; if ($courseid) { - $join = "INNER JOIN {$CFG->prefix}groups_courses_groups AS cg ON g.id = cg.groupid"; + $join = "INNER JOIN {$CFG->prefix}groups_courses_groups cg ON g.id = cg.groupid"; $where= "AND cg.courseid = '$courseid'"; } $sql = "SELECT g.id - FROM {$CFG->prefix}groups AS g + FROM {$CFG->prefix}groups g $join WHERE g.id NOT IN (SELECT groupid FROM {$CFG->prefix}groups_groupings_groups) @@ -280,8 +280,8 @@ function groups_grouping_exists($groupingid) { function groups_grouping_matches($courseid, $gg_name, $gg_description) { global $CFG; $sql = "SELECT gg.id, gg.name, gg.description - FROM {$CFG->prefix}groups_groupings AS gg - INNER JOIN {$CFG->prefix}groups_courses_groupings AS cg ON gg.id = cg.groupingid + FROM {$CFG->prefix}groups_groupings gg + INNER JOIN {$CFG->prefix}groups_courses_groupings cg ON gg.id = cg.groupingid WHERE gg.name = '$gg_name' AND gg.description = '$gg_description' AND cg.courseid = '$courseid'";