]> git.mjollnir.org Git - moodle.git/commitdiff
Work done on group functions
authormoodler <moodler>
Sun, 11 Jan 2004 17:44:46 +0000 (17:44 +0000)
committermoodler <moodler>
Sun, 11 Jan 2004 17:44:46 +0000 (17:44 +0000)
lib/moodlelib.php

index 0367872b454ed6f69c358e03a2d332eeb2b6bc45..077ca95be693eb0b042d986f862013e102629c57 100644 (file)
@@ -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  ////////////////////////////////////////////////