]> git.mjollnir.org Git - moodle.git/commitdiff
For the group functions, a group 0 means everyone
authormoodler <moodler>
Thu, 19 Feb 2004 17:56:52 +0000 (17:56 +0000)
committermoodler <moodler>
Thu, 19 Feb 2004 17:56:52 +0000 (17:56 +0000)
lib/moodlelib.php

index c81408160b282ed2580affbd5146305ea9662148..82975cdea47bff99527ba6571fc6ef153616e03b 100644 (file)
@@ -1142,7 +1142,7 @@ function get_current_group($courseid, $full=false) {
 *
 * @param       type description
 */
-function get_and_set_current_group($course, $groupmode, $groupid=0) {
+function get_and_set_current_group($course, $groupmode, $groupid=-1) {
 
     if (!$groupmode) {   // Groups don't even apply
         return false;  
@@ -1150,7 +1150,11 @@ function get_and_set_current_group($course, $groupmode, $groupid=0) {
 
     $currentgroupid = get_current_group($course->id);
 
-    if ($groupid) {     // Try to change the current group
+    if ($groupid < 0) {  // No change was specified
+        return $currentgroupid;
+    }
+
+    if ($groupid) {      // Try to change the current group to this groupid
         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);
@@ -1159,6 +1163,13 @@ function get_and_set_current_group($course, $groupmode, $groupid=0) {
                 $currentgroupid = $group->id;
             }
         }
+    } else {             // When groupid = 0 it means show ALL groups
+        if (isteacheredit($course->id)) {          // Sets current default group
+            $currentgroupid = set_current_group($course->id, 0);
+
+        } else if ($groupmode == VISIBLEGROUPS) {  // All groups are visible
+            $currentgroupid = 0;
+        }
     }
 
     return $currentgroupid;
@@ -1177,9 +1188,15 @@ function get_and_set_current_group($course, $groupmode, $groupid=0) {
 */
 function setup_and_print_groups($course, $groupmode, $urlroot) {
 
-    $currentgroup = get_and_set_current_group($course, $groupmode, $_GET['group']);
+    if (isset($_GET['group'])) {
+        $changegroup = $_GET['group'];  /// 0 or higher
+    } else {
+        $changegroup = -1;              /// This means no group change was specified
+    }
+
+    $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup);
 
-    if ($currentgroup == false) {
+    if ($currentgroup === false) {
         return false;
     }
 
@@ -1191,7 +1208,9 @@ function setup_and_print_groups($course, $groupmode, $urlroot) {
 
     if ($groupmode == VISIBLEGROUPS or ($groupmode and isteacheredit($course->id))) {
         if ($groups = get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")) {
+            echo '<div align="center">';
             print_group_menu($groups, $groupmode, $currentgroup, $urlroot);
+            echo '</div>';
         }
     }