From 0d67c514580a24379e38d43992aa43d9ffccf2c5 Mon Sep 17 00:00:00 2001 From: moodler Date: Sun, 11 Jan 2004 17:44:46 +0000 Subject: [PATCH] Work done on group functions --- lib/moodlelib.php | 59 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 0367872b45..077ca95be6 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -876,6 +876,7 @@ function remove_course_contents($courseid, $showfeedback=true) { /// GROUPS ///////////////////////////////////////////////////////// + /** * Returns a boolean: is the user a member of the given group? @@ -886,12 +887,35 @@ function ismember($groupid, $userid=0) { global $USER; if (!$userid) { - return !empty($USER->groupmember[$groupid]); + if (empty($USER->groupmember)) { + return false; + } + foreach ($USER->groupmember as $courseid => $mgroupid) { + if ($mgroupid == $groupid) { + return true; + } + } + return false; } return record_exists("groups_members", "groupid", $groupid, "userid", $userid); } +/** +* Returns the group ID of the current user in the given course +* +* @param type description +*/ +function mygroupid($courseid) { + global $USER; + + if (empty($USER->groupmember[$courseid])) { + return 0; + } else { + return $USER->groupmember[$courseid]; + } +} + /** * For a given course, and possibly course module, determine * what the current default groupmode is: @@ -943,6 +967,39 @@ function get_current_group($courseid, $full=false) { } } +/** +* A combination function to make it easier for modules +* to set up groups. +* +* It will use a given "groupid" parameter and try to use +* that to reset the current group for the user. +* +* @param type description +*/ +function get_and_set_current_group($course, $groupmode, $groupid=0) { + + if (!$groupmode) { // Groups don't even apply + return false; + } + + $currentgroupid = get_current_group($course->id); + + if ($groupid) { // Try to change the current group + if ($group = get_record('groups', 'id', $groupid, 'courseid', $course->id)) { // Exists + if (isteacheredit($course->id)) { // Sets current default group + $currentgroupid = set_current_group($course->id, $group->id); + + } else if ($groupmode == VISIBLEGROUPS) { // All groups are visible + $currentgroupid = $group->id; + } + } + } + + return $currentgroupid; +} + + + /// CORRESPONDENCE //////////////////////////////////////////////// -- 2.39.5