$updateinstancefunction = $fromform->modulename."_update_instance";
if (!empty($fromform->update)) {
+ if (!isset($fromform->groupingid)) {
+ $fromform->groupingid = 0;
+ }
- if (isset($fromform->name)) {
- if (trim($fromform->name) == '') {
- unset($fromform->name);
- }
+ if (!isset($fromform->groupmembersonly)) {
+ $fromform->groupmembersonly = 0;
+ }
+
+ if (!isset($fromform->groupmode)) {
+ $fromform->groupmode = 0;
}
$returnfromfunc = $updateinstancefunction($fromform);
}
set_coursemodule_visible($fromform->coursemodule, $fromform->visible);
-
- if (isset($fromform->groupmode)) {
- set_coursemodule_groupmode($fromform->coursemodule, $fromform->groupmode);
- }
-
- if (isset($fromform->groupingid)) {
- set_coursemodule_groupingid($fromform->coursemodule, $fromform->groupingid);
- }
-
- if (isset($fromform->groupmembersonly)) {
- set_coursemodule_groupmembersonly($fromform->coursemodule, $fromform->groupmembersonly);
- }
+ set_coursemodule_groupmode($fromform->coursemodule, $fromform->groupmode);
+ set_coursemodule_groupingid($fromform->coursemodule, $fromform->groupingid);
+ set_coursemodule_groupmembersonly($fromform->coursemodule, $fromform->groupmembersonly);
// set cm id number
set_coursemodule_idnumber($fromform->coursemodule, $fromform->cmidnumber);
"$fromform->instance", $fromform->coursemodule);
} else if (!empty($fromform->add)){
-
if (!course_allowed_module($course,$fromform->modulename)) {
error("This module ($fromform->modulename) has been disabled for this particular course");
}
- if (!isset($fromform->name) || trim($fromform->name) == '') {
- $fromform->name = get_string("modulename", $fromform->modulename);
+ if (!isset($fromform->groupingid)) {
+ $fromform->groupingid = 0;
+ }
+
+ if (!isset($fromform->groupmembersonly)) {
+ $fromform->groupmembersonly = 0;
+ }
+
+ if (!isset($fromform->groupmode)) {
+ $fromform->groupmode = 0;
}
$returnfromfunc = $addinstancefunction($fromform);
$errors = array();
+ $name = trim($data['name']);
+ if ($name == '') {
+ $errors['name'] = get_string('required');
+ }
+
$grade_item = grade_item::fetch(array('itemtype'=>'mod', 'itemmodule'=>$data['modulename'],
'iteminstance'=>$data['instance'], 'itemnumber'=>0, 'courseid'=>$COURSE->id));
if ($data['coursemodule']) {
/**
* Adds all the standard elements to a form to edit the settings for an activity module.
*
- * @param bool $supportsgroups does this module support groups?
- * @param bool $supportgroupmembersonly does this module support groupmembersonly access?
+ * @param mixed array or object describing supported features - groups, groupings, groupmembersonly
*/
- function standard_coursemodule_elements($supportsgroups=true, $supportgroupmembersonly=false){
+ function standard_coursemodule_elements($features=null){
global $COURSE, $CFG;
$mform =& $this->_form;
+ // deal with legacy $supportgroups param
+ if ($features === true or $features === false) {
+ $groupmode = $features;
+ $features = new object();
+ $features->groups = $groupmode;
+
+ } else if (is_array($features)) {
+ $features = (object)$features;
+
+ } else if (empty($features)) {
+ $features = new object();
+ }
+
+ if (!isset($features->groups)) {
+ $features->groups = true;
+ }
+
+ if (!isset($features->groupings)) {
+ $features->groupings = false;
+ }
+
+ if (!isset($features->groupmembersonly)) {
+ $features->groupmembersonly = false;
+ }
+
if (!empty($CFG->enableoutcomes)) {
if ($outcomes = grade_outcome::fetch_all_available($COURSE->id)) {
$mform->addElement('header', 'modoutcomes', get_string('outcomes', 'grades'));
}
$mform->addElement('header', 'modstandardelshdr', get_string('modstandardels', 'form'));
- if ($supportsgroups){
+ if ($features->groups){
$mform->addElement('modgroupmode', 'groupmode', get_string('groupmode'));
}
if (!empty($CFG->enablegroupings)) {
- //groupings selector
- $options = array();
- $options[0] = get_string('none');
- if ($groupings = get_records('groupings', 'courseid', $COURSE->id)) {
- foreach ($groupings as $grouping) {
- $options[$grouping->id] = format_string($grouping->name);
+ if ($features->groupings or $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 = get_records('groupings', 'courseid', $COURSE->id)) {
+ foreach ($groupings as $grouping) {
+ $options[$grouping->id] = format_string($grouping->name);
+ }
}
+ $mform->addElement('select', 'groupingid', get_string('grouping', 'group'), $options);
+ $mform->setAdvanced('groupingid');
}
- $mform->addElement('select', 'groupingid', get_string('grouping', 'group'), $options);
- $mform->setAdvanced('groupingid');
-
- if ($supportgroupmembersonly) {
+
+ if ($features->groupmembersonly) {
$mform->addElement('advcheckbox', 'groupmembersonly', get_string('groupmembersonly', 'group'));
$mform->setAdvanced('groupmembersonly');
}