}
/**
- * This now returns either false or SEPARATEGROUPS. If you want VISIBLE GROUPS
- * with legacy code, you'll need to upgrade.
+ * Returns the current group mode for a given course or activity module
+ *
+ * Could be false, SEPARATEGROUPS or VISIBLEGROUPS (<-- Martin)
*/
function groupmode($course, $cm=null) {
- if (is_object($cm) && isset($cm->groupmode) && !isset($course->groupmodeforce)) {
+ if (isset($cm->groupmode) && empty($course->groupmodeforce)) {
return $cm->groupmode;
}
return $course->groupmode;
return $groups_users;
}
-?>
\ No newline at end of file
+?>
$groupmode = groupmode($course, $cm);
- if ($groupmode && $course->groupmodeforce && !has_capability('moodle/site:accessallgroups', $modcontext)) {
+ if ($groupmode && !has_capability('moodle/site:accessallgroups', $modcontext)) {
// Groups must be kept separate
//change this to ismember
$mygroupid = mygroupid($course->id); //only useful if 0, otherwise it's an array now
$cm = get_coursemodule_from_instance("forum", $forum->id, $course->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
- if (isset($forum->groupmode)) {
+ if (isset($forum->groupmode)) {
$groupmode = groupmode($course, $forum); /// Can do this because forum->groupmode is defined
} else {
$groupmode = NOGROUPS;
foreach ($forums as $forum) {
if ($cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
+ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (!isset($forum->visible)) {
- $context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (!instance_is_visible("forum", $forum) &&
!has_capability('moodle/course:viewhiddenactivities', $context)) {
continue;
}
}
$groupmode = groupmode($course, $cm); // Groups are being used
- if (($groupmode == SEPARATEGROUPS) and ($currentgroup === false)) {
+ if ($groupmode == SEPARATEGROUPS && ($currentgroup === false) &&
+ !has_capability('moodle/site:accessallgroups', $context)) {
continue;
}
}
$groupmode = groupmode($course, $cm);
$currentgroup = get_and_set_current_group($course, $groupmode, $changegroup);
- if ($groupmode and ($currentgroup === false) and
+ if ($groupmode == SEPARATEGROUPS && ($currentgroup === false) &&
!has_capability('moodle/site:accessallgroups', $context)) {
notice(get_string('notingroup', 'forum'));
}