]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10888: groupings - added function to get all grouping members, cleaned up some...
authormattc-catalyst <mattc-catalyst>
Sun, 26 Aug 2007 23:47:24 +0000 (23:47 +0000)
committermattc-catalyst <mattc-catalyst>
Sun, 26 Aug 2007 23:47:24 +0000 (23:47 +0000)
lib/datalib.php
lib/grouplib.php
lib/weblib.php

index e273c8e1e70c780511498ae34505ec9bb2417578..4b26e82e1ca7c5e399180bd854f9047664579695 100644 (file)
@@ -1329,6 +1329,7 @@ function get_all_instances_in_course($modulename, $course, $userid=NULL, $includ
 
     foreach ($modinfo as $mod) {
         $mod->id = $mod->cm;
+        $mod->course = $course->id;
         if (!groups_course_module_visible($mod)) {
             continue;
         }
@@ -1363,7 +1364,7 @@ function instance_is_visible($moduletype, $module) {
     global $CFG;
 
     if (!empty($module->id)) {
-        if ($records = get_records_sql("SELECT cm.instance, cm.visible, cm.groupingid, cm.id, cm.groupmembersonly
+        if ($records = get_records_sql("SELECT cm.instance, cm.visible, cm.groupingid, cm.id, cm.groupmembersonly, cm.course
                                         FROM {$CFG->prefix}course_modules cm,
                                              {$CFG->prefix}modules m
                                        WHERE cm.course = '$module->course' AND
index 72336e96eb2bbc0190852a51d8a247a97eceaa5e..935e07eb3a47bd1ebfdc7cdeeb6bb80cba1433f6 100644 (file)
@@ -174,19 +174,40 @@ function groups_has_membership($cm, $userid=null) {
 /**
  * Returns the users in the specified group.
  * @param int $groupid The groupid to get the users for
+ * @param int $fields The fields to return
  * @param int $sort optional sorting of returned users
  * @return array | false Returns an array of the users for the specified
  * group or false if no users or an error returned.
  */
-function groups_get_members($groupid, $sort='lastname ASC') {
+function groups_get_members($groupid, $fields='u.*', $sort='lastname ASC') {
     global $CFG;
 
-    return get_records_sql("SELECT u.*
+    return get_records_sql("SELECT $fields
                               FROM {$CFG->prefix}user u, {$CFG->prefix}groups_members gm
                              WHERE u.id = gm.userid AND gm.groupid = '$groupid'
                           ORDER BY $sort");
 }
 
+
+/**
+ * Returns the users in the specified grouping.
+ * @param int $groupingid The groupingid to get the users for
+ * @param int $fields The fields to return
+ * @param int $sort optional sorting of returned users
+ * @return array | false Returns an array of the users for the specified
+ * group or false if no users or an error returned.
+ */
+function groups_get_grouping_members($groupingid, $fields='u.*', $sort='lastname ASC') {
+    global $CFG;
+
+    return get_records_sql("SELECT $fields
+                              FROM {$CFG->prefix}user u
+                                INNER JOIN {$CFG->prefix}groups_members gm ON u.id = gm.userid
+                                INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = gg.groupid
+                             WHERE  gg.groupingid = $groupingid
+                          ORDER BY $sort");
+}
+
 /**
  * Returns effective groupmode used in activity, course setting
  * overrides activity setting if groupmodeforce enabled.
index 4bf121e06ca574174541f248eaf40d2a36539461..cdb35ad9b0eb2db6f36a1e9a343190534c9b1eab 100644 (file)
@@ -4733,6 +4733,7 @@ function navmenu($course, $cm=NULL, $targetwindow='self') {
             break;
         }
         $mod->id = $mod->cm;
+        $mod->course = $course->id;
         if (!groups_course_module_visible($mod)) {
             continue;
         }