mirror of
https://github.com/moodle/moodle.git
synced 2025-04-20 07:56:06 +02:00
Fixes bug MDL-8234, "New groups code & AS keyword"
This commit is contained in:
parent
150b5fb0e0
commit
e5902150b5
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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'";
|
||||
|
Loading…
x
Reference in New Issue
Block a user