diff --git a/admin/settings/development.php b/admin/settings/development.php index e4049054dbd..8d52196846e 100644 --- a/admin/settings/development.php +++ b/admin/settings/development.php @@ -15,6 +15,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page $temp->add(new admin_setting_configcheckbox('experimentalsplitrestore', get_string('experimentalsplitrestore', 'admin'), get_string('configexperimentalsplitrestore', 'admin'), 0)); $temp->add(new admin_setting_configcheckbox('enableimsccimport', get_string('enable_cc_import', 'imscc'), get_string('enable_cc_import_description', 'imscc'), 0)); $temp->add(new admin_setting_configcheckbox('enablesafebrowserintegration', get_string('enablesafebrowserintegration', 'admin'), get_string('configenablesafebrowserintegration', 'admin'), 0)); + $temp->add(new admin_setting_configcheckbox('enablegroupmembersonly', get_string('enablegroupmembersonly', 'admin'), get_string('configenablegroupmembersonly', 'admin'), 0)); $ADMIN->add('experimental', $temp); diff --git a/admin/settings/subsystems.php b/admin/settings/subsystems.php index 2fa348c2f12..cda97fcad91 100644 --- a/admin/settings/subsystems.php +++ b/admin/settings/subsystems.php @@ -2,8 +2,6 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page - $optionalsubsystems->add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0)); - $optionalsubsystems->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0)); $optionalsubsystems->add(new admin_setting_configcheckbox('usecomments', get_string('enablecomments', 'admin'), get_string('configenablecomments', 'admin'), 1)); diff --git a/backup/restore_form.html b/backup/restore_form.html index 3331d27d3fd..97bb8c47406 100644 --- a/backup/restore_form.html +++ b/backup/restore_form.html @@ -87,11 +87,7 @@ } if (!isset($restore_groups)) { - if (empty($CFG->enablegroupings)) { - $restore_groups = RESTORE_GROUPS_ONLY; - } else { - $restore_groups = RESTORE_GROUPS_GROUPINGS; - } + $restore_groups = RESTORE_GROUPS_GROUPINGS; } if (!isset($restore_logs)) { @@ -466,15 +462,10 @@ function selectItemInCheckboxByName(formId, checkName, checked ) { $helplink = $OUTPUT->help_icon('grouprestore', get_string('groups')); echo ''.$helplink; echo ""; - if (empty($CFG->enablegroupings)) { - $group_options[RESTORE_GROUPS_NONE] = get_string('no'); - $group_options[RESTORE_GROUPS_ONLY] = get_string('yes'); - } else { - $group_options[RESTORE_GROUPS_NONE] = get_string('none'); - $group_options[RESTORE_GROUPS_ONLY] = get_string('groupsonly', 'group'); - $group_options[RESTORE_GROUPINGS_ONLY] = get_string('groupingsonly', 'group'); - $group_options[RESTORE_GROUPS_GROUPINGS] = get_string('groupsgroupings', 'group'); //all. - } + $group_options[RESTORE_GROUPS_NONE] = get_string('none'); + $group_options[RESTORE_GROUPS_ONLY] = get_string('groupsonly', 'group'); + $group_options[RESTORE_GROUPINGS_ONLY] = get_string('groupingsonly', 'group'); + $group_options[RESTORE_GROUPS_GROUPINGS] = get_string('groupsgroupings', 'group'); //all. echo html_writer::select($group_options, 'restore_groups', $restore_groups, false); echo ""; diff --git a/course/edit_form.php b/course/edit_form.php index cc26d5c46b5..6837c7a46a8 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -299,12 +299,10 @@ class course_edit_form extends moodleform { $mform->setHelpButton('groupmodeforce', array('groupmodeforce', get_string('groupmodeforce')), true); $mform->setDefault('groupmodeforce', $courseconfig->groupmodeforce); - if (!empty($CFG->enablegroupings)) { - //default groupings selector - $options = array(); - $options[0] = get_string('none'); - $mform->addElement('select', 'defaultgroupingid', get_string('defaultgrouping', 'group'), $options); - } + //default groupings selector + $options = array(); + $options[0] = get_string('none'); + $mform->addElement('select', 'defaultgroupingid', get_string('defaultgrouping', 'group'), $options); //-------------------------------------------------------------------------------- $mform->addElement('header','', get_string('availability')); diff --git a/course/lib.php b/course/lib.php index 4f110e99885..7c0e0a70898 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1356,7 +1356,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false, if ($accessiblebutdim || !$mod->uservisible) { echo ""; } - if (!empty($CFG->enablegroupings) && !empty($mod->groupingid) && has_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE, $course->id))) { + if (!empty($mod->groupingid) && has_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE, $course->id))) { if (!isset($groupings)) { $groupings = groups_get_all_groupings($course->id); } @@ -1417,7 +1417,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false, ' '. $accesstext.''.$instancename.$altname.''; - if (!empty($CFG->enablegroupings) && !empty($mod->groupingid) && has_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE, $course->id))) { + if (!empty($mod->groupingid) && has_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE, $course->id))) { if (!isset($groupings)) { $groupings = groups_get_all_groupings($course->id); } diff --git a/course/moodleform_mod.php b/course/moodleform_mod.php index 10736d361d4..f354ceb22f6 100644 --- a/course/moodleform_mod.php +++ b/course/moodleform_mod.php @@ -375,26 +375,24 @@ abstract class moodleform_mod extends moodleform { $mform->setHelpButton('groupmode', array('groupmode', get_string('groupmode'))); } - if (!empty($CFG->enablegroupings)) { - if ($this->_features->groupings or $this->_features->groupmembersonly) { - //groupings selector - used for normal grouping mode or also when restricting access with groupmembersonly - $options = array(); - $options[0] = get_string('none'); - if ($groupings = $DB->get_records('groupings', array('courseid'=>$COURSE->id))) { - foreach ($groupings as $grouping) { - $options[$grouping->id] = format_string($grouping->name); - } + if ($this->_features->groupings or $this->_features->groupmembersonly) { + //groupings selector - used for normal grouping mode or also when restricting access with groupmembersonly + $options = array(); + $options[0] = get_string('none'); + if ($groupings = $DB->get_records('groupings', array('courseid'=>$COURSE->id))) { + foreach ($groupings as $grouping) { + $options[$grouping->id] = format_string($grouping->name); } - $mform->addElement('select', 'groupingid', get_string('grouping', 'group'), $options); - $mform->setHelpButton('groupingid', array('grouping', get_string('grouping', 'group'))); - $mform->setAdvanced('groupingid'); } + $mform->addElement('select', 'groupingid', get_string('grouping', 'group'), $options); + $mform->setHelpButton('groupingid', array('grouping', get_string('grouping', 'group'))); + $mform->setAdvanced('groupingid'); + } - if ($this->_features->groupmembersonly) { - $mform->addElement('checkbox', 'groupmembersonly', get_string('groupmembersonly', 'group')); - $mform->setHelpButton('groupmembersonly', array('groupmembersonly', get_string('groupmembersonly', 'group'))); - $mform->setAdvanced('groupmembersonly'); - } + if ($this->_features->groupmembersonly) { + $mform->addElement('checkbox', 'groupmembersonly', get_string('groupmembersonly', 'group')); + $mform->setHelpButton('groupmembersonly', array('groupmembersonly', get_string('groupmembersonly', 'group'))); + $mform->setAdvanced('groupmembersonly'); } $mform->addElement('modvisible', 'visible', get_string('visible')); diff --git a/course/reset_form.php b/course/reset_form.php index 43f9a30cfb1..f116661a6a3 100644 --- a/course/reset_form.php +++ b/course/reset_form.php @@ -42,13 +42,11 @@ class course_reset_form extends moodleform { $mform->setAdvanced('reset_groups_members'); $mform->disabledIf('reset_groups_members', 'reset_groups_remove', 'checked'); - if (!empty($CFG->enablegroupings)) { - $mform->addElement('checkbox', 'reset_groupings_remove', get_string('deleteallgroupings', 'group')); - $mform->setAdvanced('reset_groupings_remove'); - $mform->addElement('checkbox', 'reset_groupings_members', get_string('removegroupingsmembers', 'group')); - $mform->setAdvanced('reset_groupings_members'); - $mform->disabledIf('reset_groupings_members', 'reset_groupings_remove', 'checked'); - } + $mform->addElement('checkbox', 'reset_groupings_remove', get_string('deleteallgroupings', 'group')); + $mform->setAdvanced('reset_groupings_remove'); + $mform->addElement('checkbox', 'reset_groupings_members', get_string('removegroupingsmembers', 'group')); + $mform->setAdvanced('reset_groupings_members'); + $mform->disabledIf('reset_groupings_members', 'reset_groupings_remove', 'checked'); $unsupported_mods = array(); if ($allmods = $DB->get_records('modules') ) { diff --git a/group/autogroup_form.php b/group/autogroup_form.php index 71b02fcefeb..c159ac0eb51 100644 --- a/group/autogroup_form.php +++ b/group/autogroup_form.php @@ -55,23 +55,21 @@ class autogroup_form extends moodleform { $mform->setDefault('namingscheme', $template); } - if (!empty($CFG->enablegroupings)) { - $options = array('0' => get_string('no'), - '-1'=> get_string('newgrouping', 'group')); - if ($groupings = groups_get_all_groupings($COURSE->id)) { - foreach ($groupings as $grouping) { - $options[$grouping->id] = strip_tags(format_string($grouping->name)); - } + $options = array('0' => get_string('no'), + '-1'=> get_string('newgrouping', 'group')); + if ($groupings = groups_get_all_groupings($COURSE->id)) { + foreach ($groupings as $grouping) { + $options[$grouping->id] = strip_tags(format_string($grouping->name)); } - $mform->addElement('select', 'grouping', get_string('createingrouping', 'group'), $options); - if ($groupings) { - $mform->setDefault('grouping', '-1'); - } - - $mform->addElement('text', 'groupingname', get_string('groupingname', 'group'), $options); - $mform->setType('groupingname', PARAM_MULTILANG); - $mform->disabledIf('groupingname', 'grouping', 'noteq', '-1'); } + $mform->addElement('select', 'grouping', get_string('createingrouping', 'group'), $options); + if ($groupings) { + $mform->setDefault('grouping', '-1'); + } + + $mform->addElement('text', 'groupingname', get_string('groupingname', 'group'), $options); + $mform->setType('groupingname', PARAM_MULTILANG); + $mform->disabledIf('groupingname', 'grouping', 'noteq', '-1'); $mform->addElement('hidden','courseid'); $mform->setType('courseid', PARAM_INT); diff --git a/group/overview.php b/group/overview.php index c35751d4f31..9988482b973 100644 --- a/group/overview.php +++ b/group/overview.php @@ -47,18 +47,12 @@ $strnogroups = get_string('nogroups', 'group'); $strdescription = get_string('description'); // Get all groupings -if (empty($CFG->enablegroupings)) { - $groupings = array(); - $members = array(-1 => array()); //groups not in a grouping - $groupingid = 0; -} else { - $groupings = $DB->get_records('groupings', array('courseid'=>$courseid), 'name'); - $members = array(); - foreach ($groupings as $grouping) { - $members[$grouping->id] = array(); - } - $members[-1] = array(); //groups not in a grouping +$groupings = $DB->get_records('groupings', array('courseid'=>$courseid), 'name'); +$members = array(); +foreach ($groupings as $grouping) { + $members[$grouping->id] = array(); } +$members[-1] = array(); //groups not in a grouping // Get all groups $groups = $DB->get_records('groups', array('courseid'=>$courseid), 'name'); @@ -71,28 +65,19 @@ if ($groupid) { $groupwhere = ""; } -if (empty($CFG->enablegroupings)) { - $sql = "SELECT g.id AS groupid, NULL AS groupingid, u.id AS userid, u.firstname, u.lastname, u.idnumber, u.username - FROM {groups} g - LEFT JOIN {groups_members} gm ON g.id = gm.groupid - LEFT JOIN {user} u ON gm.userid = u.id - WHERE g.courseid = :courseid $groupwhere - ORDER BY g.name, u.lastname, u.firstname"; +if ($groupingid) { + $groupingwhere = "AND gg.groupingid = :groupingid"; + $params['groupingid'] = $groupingid; } else { - if ($groupingid) { - $groupingwhere = "AND gg.groupingid = :groupingid"; - $params['groupingid'] = $groupingid; - } else { - $groupingwhere = ""; - } - $sql = "SELECT g.id AS groupid, gg.groupingid, u.id AS userid, u.firstname, u.lastname, u.idnumber, u.username - FROM {groups} g - LEFT JOIN {groupings_groups} gg ON g.id = gg.groupid - LEFT JOIN {groups_members} gm ON g.id = gm.groupid - LEFT JOIN {user} u ON gm.userid = u.id - WHERE g.courseid = :courseid $groupwhere $groupingwhere - ORDER BY g.name, u.lastname, u.firstname"; + $groupingwhere = ""; } +$sql = "SELECT g.id AS groupid, gg.groupingid, u.id AS userid, u.firstname, u.lastname, u.idnumber, u.username + FROM {groups} g + LEFT JOIN {groupings_groups} gg ON g.id = gg.groupid + LEFT JOIN {groups_members} gm ON g.id = gm.groupid + LEFT JOIN {user} u ON gm.userid = u.id + WHERE g.courseid = :courseid $groupwhere $groupingwhere + ORDER BY g.name, u.lastname, u.firstname"; if ($rs = $DB->get_recordset_sql($sql, $params)) { foreach ($rs as $row) { @@ -132,18 +117,16 @@ echo $OUTPUT->heading(format_string($course->shortname) .' '.$stroverview, 3); echo $strfiltergroups; -if (!empty($CFG->enablegroupings)) { - $options = array(); - $options[0] = get_string('all'); - foreach ($groupings as $grouping) { - $options[$grouping->id] = strip_tags(format_string($grouping->name)); - } - $popupurl = new moodle_url($rooturl.'&group='.$groupid); - $select = new single_select($popupurl, 'grouping', $options, $groupingid, array()); - $select->label = $strgrouping; - $select->formid = 'selectgrouping'; - echo $OUTPUT->render($select); +$options = array(); +$options[0] = get_string('all'); +foreach ($groupings as $grouping) { + $options[$grouping->id] = strip_tags(format_string($grouping->name)); } +$popupurl = new moodle_url($rooturl.'&group='.$groupid); +$select = new single_select($popupurl, 'grouping', $options, $groupingid, array()); +$select->label = $strgrouping; +$select->formid = 'selectgrouping'; +echo $OUTPUT->render($select); $options = array(); $options[0] = get_string('all'); @@ -196,16 +179,14 @@ foreach ($members as $gpgid=>$groupdata) { if ($groupid and empty($table->data)) { continue; } - if (!empty($CFG->enablegroupings)) { - if ($gpgid < 0) { - echo $OUTPUT->heading($strnotingrouping, 3); - } else { - echo $OUTPUT->heading(format_string($groupings[$gpgid]->name), 3); - $description = file_rewrite_pluginfile_urls($groupings[$gpgid]->description, 'pluginfile.php', $context->id, 'course_grouping_description', $gpgid); - $options = new stdClass; - $options->noclean = true; - echo $OUTPUT->box(format_text($description, $groupings[$gpgid]->descriptionformat, $options), 'generalbox boxwidthnarrow boxaligncenter'); - } + if ($gpgid < 0) { + echo $OUTPUT->heading($strnotingrouping, 3); + } else { + echo $OUTPUT->heading(format_string($groupings[$gpgid]->name), 3); + $description = file_rewrite_pluginfile_urls($groupings[$gpgid]->description, 'pluginfile.php', $context->id, 'course_grouping_description', $gpgid); + $options = new stdClass; + $options->noclean = true; + echo $OUTPUT->box(format_text($description, $groupings[$gpgid]->descriptionformat, $options), 'generalbox boxwidthnarrow boxaligncenter'); } echo html_writer::table($table); $printed = true; diff --git a/group/tabs.php b/group/tabs.php index 42b38603a4f..c70f3c2df77 100644 --- a/group/tabs.php +++ b/group/tabs.php @@ -4,11 +4,9 @@ $CFG->wwwroot.'/group/index.php?id='.$courseid, get_string('groups')); - if (!empty($CFG->enablegroupings)) { - $row[] = new tabobject('groupings', - $CFG->wwwroot.'/group/groupings.php?id='.$courseid, - get_string('groupings', 'group')); - } + $row[] = new tabobject('groupings', + $CFG->wwwroot.'/group/groupings.php?id='.$courseid, + get_string('groupings', 'group')); $row[] = new tabobject('overview', $CFG->wwwroot.'/group/overview.php?id='.$courseid, diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php index 769712d4c5a..29085cb3a7a 100644 --- a/lang/en_utf8/admin.php +++ b/lang/en_utf8/admin.php @@ -155,7 +155,7 @@ $string['configenablecalendarexport'] = 'Enable exporting or subscribing to cale $string['configenablecourserequests'] = 'This will allow any user to request a course be created.'; $string['configenablecomments'] = 'Enable comments'; $string['configenableglobalsearch'] = 'This setting enables global text searching in resources and activities, it is not compatible with PHP 4.'; -$string['configenablegroupings'] = 'This setting enables groupings of groups.'; +$string['configenablegroupmembersonly'] = 'This setting enables group members only feature. Please note it is incresing your server load and it is necessary to use some advanced tricks in the gradebook.'; $string['configenablehtmlpurifier'] = 'Use HTML Purifier instead of KSES for cleaning of untrusted text. HTML Purifier is actively developed and is believed to be more secure, but it is more resource intensive. Expect minor visual differences in the resulting html code. Please note that embed and object tags can not be enabled, MathML tags and old lang tags are not supported. '; $string['configenablerssfeeds'] = 'This switch will enable RSS feeds from across the site. To actually see any change you will need to enable RSS feeds in the individual modules too - go to the Modules settings under Admin Configuration.'; $string['configenablerssfeedsdisabled'] = 'It is not available because RSS feeds are disabled in all the Site. To enable them, go to the Variables settings under Admin Configuration.'; @@ -427,7 +427,7 @@ $string['enablecalendarexport'] = 'Enable calendar export'; $string['enablecourserequests'] = 'Enable course requests'; $string['enablecomments'] = 'Enable comments'; $string['enableglobalsearch'] = 'Enable global search'; -$string['enablegroupings'] = 'Enable groupings'; +$string['enablegroupmembersonly'] = 'Enable group members only'; $string['enablehtmlpurifier'] = 'Enable HTML Purifier'; $string['enablerecordcache'] = 'Enable Record Cache'; $string['enablerssfeeds'] = 'Enable RSS feeds'; diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index ede4ed9bf4a..49c32bbe347 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3056,7 +3056,7 @@ WHERE gradeitemid IS NOT NULL AND grademax IS NOT NULL"); } if ($result && $oldversion < 2010033101.02) { - + /// Define table license to be created $table = new xmldb_table('license'); @@ -3435,6 +3435,17 @@ WHERE gradeitemid IS NOT NULL AND grademax IS NOT NULL"); upgrade_main_savepoint($result, 2010033102.09); } + if ($result && $oldversion < 2010040700) { + // migrate old groupings --> groupmembersonly setting + if (isset($CFG->enablegroupings)) { + set_config('enablegroupmembersonly', $CFG->enablegroupings); + unset_config('enablegroupings'); + } + + // Main savepoint reached + upgrade_main_savepoint($result, 2010040700); + } + return $result; } diff --git a/lib/externallib.php b/lib/externallib.php index b61e5cde2f6..f44f624a943 100644 --- a/lib/externallib.php +++ b/lib/externallib.php @@ -320,7 +320,7 @@ class external_api { throw new invalid_parameter_exception('Invalid activity.'); } // verify group memebers - if (!empty($CFG->enablegroupings) and $cm and $cm->groupmembersonly and !has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) { + if (!empty($CFG->enablegroupmembersonly) and $cm and $cm->groupmembersonly and !has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) { if (!groups_has_membership($cm)) { throw new invalid_parameter_exception('Must be member of at least one group.'); } diff --git a/lib/grouplib.php b/lib/grouplib.php index 3b3629c5377..b7c41ec221c 100644 --- a/lib/grouplib.php +++ b/lib/grouplib.php @@ -144,12 +144,6 @@ function groups_get_grouping($groupingid, $fields='*', $strictness=IGNORE_MISSIN function groups_get_all_groups($courseid, $userid=0, $groupingid=0, $fields='g.*') { global $CFG, $DB; - // groupings are ignored when not enabled - if (empty($CFG->enablegroupings)) { - $groupingid = 0; - } - - if (empty($userid)) { $userfrom = ""; $userwhere = ""; @@ -238,10 +232,6 @@ function groups_get_user_groups($courseid, $userid=0) { function groups_get_all_groupings($courseid) { global $CFG, $DB; - // groupings are ignored when not enabled - if (empty($CFG->enablegroupings)) { - return(false); - } return $DB->get_records_sql("SELECT * FROM {groupings} WHERE courseid = ? @@ -287,11 +277,6 @@ function groups_has_membership($cm, $userid=null) { static $cache = array(); - // groupings are ignored when not enabled - if (empty($CFG->enablegroupings)) { - $cm->groupingid = 0; - } - if (empty($userid)) { $userid = $USER->id; } @@ -521,11 +506,6 @@ function groups_print_activity_menu($cm, $urlroot, $return=false, $hideallpartic DEBUG_DEVELOPER); } - // groupings are ignored when not enabled - if (empty($CFG->enablegroupings)) { - $cm->groupingid = 0; - } - if (!$groupmode = groups_get_activity_groupmode($cm)) { if ($return) { return ''; @@ -694,11 +674,6 @@ function groups_get_course_group($course, $update=false) { function groups_get_activity_group($cm, $update=false) { global $CFG, $USER, $SESSION; - // groupings are ignored when not enabled - if (empty($CFG->enablegroupings)) { - $cm->groupingid = 0; - } - if (!$groupmode = groups_get_activity_groupmode($cm)) { // NOGROUPS used return false; @@ -807,7 +782,7 @@ function groups_course_module_visible($cm, $userid=null) { if (empty($userid)) { $userid = $USER->id; } - if (empty($CFG->enablegroupings)) { + if (empty($CFG->enablegroupmembersonly)) { return true; } if (empty($cm->groupmembersonly)) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 9c1fda75ed6..8b0da79feac 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -2216,7 +2216,7 @@ function require_login($courseorid=0, $autologinguest=true, $cm=null, $setwantsu } /// groupmembersonly access control - if (!empty($CFG->enablegroupings) and $cm and $cm->groupmembersonly and !has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) { + if (!empty($CFG->enablegroupmembersonly) and $cm and $cm->groupmembersonly and !has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) { if (isguestuser() or !groups_has_membership($cm)) { print_error('groupmembersonlyerror', 'group', $CFG->wwwroot.'/course/view.php?id='.$cm->course); } @@ -2393,7 +2393,7 @@ function require_course_login($courseorid, $autologinguest=true, $cm=null, $setw if ($cm and empty($cm->visible)) { // hidden activities are not accessible without login require_login($courseorid, $autologinguest, $cm, $setwantsurltome); - } else if ($cm and !empty($CFG->enablegroupings) and $cm->groupmembersonly) { + } else if ($cm and !empty($CFG->enablegroupmembersonly) and $cm->groupmembersonly) { // not-logged-in users do not have any group membership require_login($courseorid, $autologinguest, $cm, $setwantsurltome); } else { @@ -2841,7 +2841,7 @@ function &get_fast_modinfo(&$course, $userid=0) { if ((!$cm->visible or !$cm->available) and !has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) { $cm->uservisible = false; - } else if (!empty($CFG->enablegroupings) and !empty($cm->groupmembersonly) + } else if (!empty($CFG->enablegroupmembersonly) and !empty($cm->groupmembersonly) and !has_capability('moodle/site:accessallgroups', $modcontext, $userid)) { if (is_null($modinfo->groups)) { $modinfo->groups = groups_get_user_groups($course->id, $userid); diff --git a/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_get_string.log.php b/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_get_string.log.php index b5dbca77fde..e0590d3ebe6 100644 --- a/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_get_string.log.php +++ b/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_get_string.log.php @@ -1248,8 +1248,6 @@ get_string('configmemcachedpconn', 'admin', NULL); get_string('no', '', NULL); get_string('yes', '', NULL); get_string('registration', 'admin', NULL); -get_string('enablegroupings', 'admin', NULL); -get_string('configenablegroupings', 'admin', NULL); get_string('enableoutcomes', 'grades', NULL); get_string('configenableoutcomes', 'grades', NULL); get_string('usetags', 'admin', NULL); diff --git a/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_old_get_string.log.php b/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_old_get_string.log.php index c6523a663c1..918a81e96fc 100644 --- a/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_old_get_string.log.php +++ b/lib/simpletest/get_string_fixtures/pagelogs/admin_index.php_old_get_string.log.php @@ -1248,8 +1248,6 @@ old_get_string('configmemcachedpconn', 'admin', NULL); old_get_string('no', '', NULL); old_get_string('yes', '', NULL); old_get_string('registration', 'admin', NULL); -old_get_string('enablegroupings', 'admin', NULL); -old_get_string('configenablegroupings', 'admin', NULL); old_get_string('enableoutcomes', 'grades', NULL); old_get_string('configenableoutcomes', 'grades', NULL); old_get_string('usetags', 'admin', NULL); diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index e93365be9ce..8638b1c80bd 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -891,7 +891,7 @@ class assignment_base { } // if groupmembersonly used, remove users who are not in any group - if ($users and !empty($CFG->enablegroupings) and $cm->groupmembersonly) { + if ($users and !empty($CFG->enablegroupmembersonly) and $cm->groupmembersonly) { if ($groupingusers = groups_get_grouping_members($cm->groupingid, 'u.id', 'u.id')) { $users = array_intersect($users, array_keys($groupingusers)); } @@ -1143,7 +1143,7 @@ class assignment_base { } // if groupmembersonly used, remove users who are not in any group - if ($users and !empty($CFG->enablegroupings) and $cm->groupmembersonly) { + if ($users and !empty($CFG->enablegroupmembersonly) and $cm->groupmembersonly) { if ($groupingusers = groups_get_grouping_members($cm->groupingid, 'u.id', 'u.id')) { $users = array_intersect($users, array_keys($groupingusers)); } @@ -2952,7 +2952,7 @@ function assignment_count_real_submissions($cm, $groupid=0) { } // if groupmembersonly used, remove users who are not in any group - if ($users and !empty($CFG->enablegroupings) and $cm->groupmembersonly) { + if ($users and !empty($CFG->enablegroupmembersonly) and $cm->groupmembersonly) { if ($groupingusers = groups_get_grouping_members($cm->groupingid, 'u.id', 'u.id')) { $users = array_intersect($users, array_keys($groupingusers)); } diff --git a/mod/chat/lib.php b/mod/chat/lib.php index af577fa3e60..608b62cfc8d 100644 --- a/mod/chat/lib.php +++ b/mod/chat/lib.php @@ -531,7 +531,7 @@ function chat_get_users($chatid, $groupid=0, $groupingid=0) { $groupselect = ""; } - if (!empty($CFG->enablegroupings) && !(empty($groupingid))) { + if (!empty($groupingid)) { $groupingjoin = "JOIN {groups_members} gm ON u.id = gm.userid JOIN {groupings_groups} gg ON gm.groupid = gg.groupid AND gg.groupingid = :groupingid "; diff --git a/mod/forum/lib.php b/mod/forum/lib.php index ac73b94d8fd..888b9cc068b 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1937,10 +1937,7 @@ function forum_get_readable_forums($userid, $courseid=0) { if (is_null($modinfo->groups)) { $modinfo->groups = groups_get_user_groups($course->id, $USER->id); } - if (empty($CFG->enablegroupings)) { - $forum->onlygroups = $modinfo->groups[0]; - $forum->onlygroups[] = -1; - } else if (isset($modinfo->groups[$cm->groupingid])) { + if (isset($modinfo->groups[$cm->groupingid])) { $forum->onlygroups = $modinfo->groups[$cm->groupingid]; $forum->onlygroups[] = -1; } else { @@ -2556,14 +2553,10 @@ function forum_count_discussions($forum, $cm, $course) { $modinfo->groups = groups_get_user_groups($course->id, $USER->id); } - if (empty($CFG->enablegroupings)) { - $mygroups = $modinfo->groups[0]; + if (array_key_exists($cm->groupingid, $modinfo->groups)) { + $mygroups = $modinfo->groups[$cm->groupingid]; } else { - if (array_key_exists($cm->groupingid, $modinfo->groups)) { - $mygroups = $modinfo->groups[$cm->groupingid]; - } else { - $mygroups = false; // Will be set below - } + $mygroups = false; // Will be set below } // add all groups posts @@ -7062,11 +7055,7 @@ function forum_tp_count_forum_unread_posts($cm, $course) { $modinfo->groups = groups_get_user_groups($course->id, $USER->id); } - if (empty($CFG->enablegroupings)) { - $mygroups = $modinfo->groups[0]; - } else { - $mygroups = $modinfo->groups[$cm->groupingid]; - } + $mygroups = $modinfo->groups[$cm->groupingid]; // add all groups posts if (empty($mygroups)) { diff --git a/mod/hotpot/lib.php b/mod/hotpot/lib.php index b2384635807..6660133b572 100644 --- a/mod/hotpot/lib.php +++ b/mod/hotpot/lib.php @@ -492,7 +492,7 @@ function hotpot_is_visible(&$cm) { // check grouping $modulecontext = get_context_instance(CONTEXT_MODULE, $cm->id); - if (empty($CFG->enablegroupings) || empty($cm->groupmembersonly) || has_capability('moodle/site:accessallgroups', $modulecontext)) { + if (empty($CFG->enablegroupmembersonly) || empty($cm->groupmembersonly) || has_capability('moodle/site:accessallgroups', $modulecontext)) { // groupings not applicable } else if (!isguestuser() && groups_has_membership($cm)) { // user is in one of the groups in the allowed grouping diff --git a/mod/lesson/essay.php b/mod/lesson/essay.php index 3c54fe72417..96d2276bb67 100644 --- a/mod/lesson/essay.php +++ b/mod/lesson/essay.php @@ -243,7 +243,7 @@ switch ($mode) { list($usql, $parameters) = $DB->get_in_or_equal(array_keys($pages)); if ($essayattempts = $DB->get_records_select('lesson_attempts', 'pageid '.$usql, $parameters)) { // Get all the users who have taken this lesson, order by their last name - if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + if (!empty($cm->groupingid)) { $params["groupinid"] = $cm->groupingid; $sql = "SELECT DISTINCT u.* FROM {lesson_attempts} a diff --git a/mod/lesson/report.php b/mod/lesson/report.php index f7120b66da0..0bc27d4cad2 100644 --- a/mod/lesson/report.php +++ b/mod/lesson/report.php @@ -44,7 +44,7 @@ $context = get_context_instance(CONTEXT_MODULE, $cm->id); require_capability('mod/lesson:manage', $context); $params = array("lessonid" => $lesson->id); -if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { +if (!empty($cm->groupingid)) { $params["groupid"] = $cm->groupingid; $sql = "SELECT DISTINCT u.id, u.* FROM {lesson_attempts} a diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php index e213f1b6281..004268d3e9a 100755 --- a/mod/scorm/locallib.php +++ b/mod/scorm/locallib.php @@ -857,7 +857,7 @@ function scorm_simple_play($scorm,$user) { function scorm_get_count_users($scormid, $groupingid=null) { global $CFG, $DB; - if (!empty($CFG->enablegroupings) && !empty($groupingid)) { + if (!empty($groupingid)) { $sql = "SELECT COUNT(DISTINCT st.userid) FROM {scorm_scoes_track} st INNER JOIN {groups_members} gm ON st.userid = gm.userid diff --git a/mod/scorm/report.php b/mod/scorm/report.php index 49111064911..10d6c4bdd65 100755 --- a/mod/scorm/report.php +++ b/mod/scorm/report.php @@ -107,7 +107,7 @@ if (empty($a)) { // No options, show the global scorm report - if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + if (!empty($cm->groupingid)) { $sql = "SELECT st.userid, st.scormid FROM {scorm_scoes_track} st INNER JOIN {groups_members} gm ON st.userid = gm.userid diff --git a/mod/survey/graph.php b/mod/survey/graph.php index d040838c260..cd92e214cd2 100644 --- a/mod/survey/graph.php +++ b/mod/survey/graph.php @@ -56,7 +56,7 @@ /// Check to see if groups are being used in this survey if ($group) { $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $group, null, false); - } else if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + } else if (!empty($cm->groupingid)) { $groups = groups_get_all_groups($courseid, 0, $cm->groupingid); $groups = array_keys($groups); $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $groups, null, false); diff --git a/mod/survey/report.php b/mod/survey/report.php index 6cf6e5f4c63..547157eac7f 100644 --- a/mod/survey/report.php +++ b/mod/survey/report.php @@ -132,7 +132,7 @@ if ($currentgroup) { $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $currentgroup, null, false); - } else if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + } else if (!empty($cm->groupingid)) { $groups = groups_get_all_groups($courseid, 0, $cm->groupingid); $groups = array_keys($groups); $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $groups, null, false); diff --git a/mod/wiki/lib.php b/mod/wiki/lib.php index 3d0ff18c025..a81f9145dc7 100644 --- a/mod/wiki/lib.php +++ b/mod/wiki/lib.php @@ -760,7 +760,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { $cm->groupmode = $wiki->groupmode; $cm->groupingid = $wiki->groupingid; $cm->groupmembersonly = $wiki->groupmembersonly; - if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + if (!empty($cm->groupingid)) { $groupingid = $wiki->groupingid; } @@ -771,7 +771,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { /// Get all the existing entries for this wiki. $wiki_entries = wiki_get_entries($wiki, 'student'); - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = "SELECT gm.userid FROM {groups_members} gm " . "INNER JOIN {groupings_groups} gg ON gm.groupid = gg.groupid " . "WHERE gg.groupingid = ? "; @@ -789,7 +789,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { $defpagename = empty($wiki->pagename) ? get_string('wikidefaultpagename', 'wiki') : $wiki->pagename; foreach ($students as $student) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { + if (!empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { continue; } /// If this student already has an entry, use its pagename. @@ -810,7 +810,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { if ($students = wiki_get_students($wiki, $mygroupid)) { $defpagename = empty($wiki->pagename) ? get_string('wikidefaultpagename', 'wiki') : $wiki->pagename; foreach ($students as $student) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { + if (!empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { continue; } /// If this student already has an entry, use its pagename. @@ -831,7 +831,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { if ($students = wiki_get_students($wiki, $mygroupid)) { $defpagename = empty($wiki->pagename) ? get_string('wikidefaultpagename', 'wiki') : $wiki->pagename; foreach ($students as $student) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { + if (!empty($wiki->groupingid) && empty($groupingmembers[$student->id])) { continue; } /// If this student already has an entry, use its pagename. @@ -846,7 +846,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { } } /// Get all student wikis created, regardless of group. - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = 'SELECT w.id, w.userid, w.pagename, u.firstname, u.lastname ' .' FROM {wiki_entries} w ' .' INNER JOIN {user} u ON w.userid = u.id ' @@ -891,7 +891,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { } if ($viewall !== false) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = 'SELECT w.id, w.userid, w.pagename, u.firstname, u.lastname ' .' FROM {wiki_entries} w ' .' INNER JOIN {user} u ON w.userid = u.id ' @@ -910,7 +910,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { $wiki_entries = $DB->get_records_sql($sql, $params); $wiki_entries=is_array($wiki_entries)?$wiki_entries:array(); foreach ($wiki_entries as $wiki_entry) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid) && empty($groupingmembers[$wiki_entry->userid])) { + if (!empty($wiki->groupingid) && empty($groupingmembers[$wiki_entry->userid])) { continue; } @@ -975,7 +975,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { } /// A user can see other group wikis if there are visible groups. else if ($groupmode == VISIBLEGROUPS) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = 'SELECT w.id, w.groupid, w.pagename, g.name as gname ' .' FROM {wiki_entries} w ' .' INNER JOIN {groups} g ON g.id = w.groupid ' @@ -1025,7 +1025,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { } /// A teacher can see all other group teacher wikis. else if ($groupmode) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = 'SELECT w.id, w.groupid, w.pagename, g.name as gname ' .' FROM {wiki_entries} w ' .' INNER JOIN {groups} g ON g.id = w.groupid ' @@ -1064,7 +1064,7 @@ function wiki_get_other_wikis(&$wiki, &$user, &$course, $currentid=0) { $viewall = false; } if ($viewall !== false) { - if (!empty($CFG->enablegroupings) && !empty($wiki->groupingid)) { + if (!empty($wiki->groupingid)) { $sql = 'SELECT w.id, w.groupid, w.pagename, g.name as gname ' .' FROM {wiki_entries} w ' .' INNER JOIN {groups} g ON g.id = w.groupid ' diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index 70e8c6ff7be..d4cff8fb949 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -372,7 +372,7 @@ class workshop { if (empty($users)) { return $grouped; } - if (!empty($CFG->enablegroupings) and $this->cm->groupmembersonly) { + if (!empty($CFG->enablegroupmembersonly) and $this->cm->groupmembersonly) { // Available for group members only - the workshop is available only // to users assigned to groups within the selected grouping, or to // any group if no grouping is selected. diff --git a/user/index.php b/user/index.php index ee157c4d994..78800729361 100644 --- a/user/index.php +++ b/user/index.php @@ -356,10 +356,8 @@ if ($groupmode != 0) { $tablecolumns[] = 'groups'; $tableheaders[] = get_string('groups'); - if (!empty($CFG->enablegroupings)) { - $tablecolumns[] = 'groupings'; - $tableheaders[] = get_string('groupings', 'group'); - } + $tablecolumns[] = 'groupings'; + $tableheaders[] = get_string('groupings', 'group'); } } @@ -821,9 +819,7 @@ if ($groupmode != 0) { // htmlescape with s() and implode the array $data[] = implode(', ', array_map('s',$userlist_extra[$user->id]['group'])); - if (!empty($CFG->enablegroupings)) { - $data[] = implode(', ', array_map('s', $userlist_extra[$user->id]['gping'])); - } + $data[] = implode(', ', array_map('s', $userlist_extra[$user->id]['gping'])); } } @@ -930,16 +926,11 @@ function get_participants_extra ($userids, $course, $context) { $contextids = substr($context->path, 1); // kill leading slash $contextids = str_replace('/', ',', $contextids);; - if (!empty($CFG->enablegroupings)) { - $gpjoin = "LEFT OUTER JOIN {groupings_groups} gpg - ON gpg.groupid=g.id - LEFT OUTER JOIN {groupings} gp - ON (gp.courseid={$course->id} AND gp.id=gpg.groupingid)"; - $gpselect = ',gp.id AS gpid, gp.name AS gpname '; - } else { - $gpjoin = ''; - $gpselect = ''; - } + $gpjoin = "LEFT OUTER JOIN {groupings_groups} gpg + ON gpg.groupid=g.id + LEFT OUTER JOIN {groupings} gp + ON (gp.courseid={$course->id} AND gp.id=gpg.groupingid)"; + $gpselect = ',gp.id AS gpid, gp.name AS gpname '; // Note: this returns strange redundant rows, perhaps // due to the multiple OUTER JOINs. If we can tweak the diff --git a/version.php b/version.php index b6a10650262..634077f9c11 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2010033103; // YYYYMMDD = date of the last version bump + $version = 2010040700; // YYYYMMDD = date of the last version bump // XX = daily increments $release = '2.0 dev (Build: 20100407)'; // Human-friendly version name