/** * Form definition with two possibilities: * * 1) User part of group -> allow user to edit or drop group. * 2) User not part of group -> allow user to create new group. * */ public function definition() { global $DB, $USER; $mform =& $this->_form; $mform->addElement('header', 'header', get_string('creategroupheader', BLOCK_SG_LANG_TABLE)); $sgs = new skills_group_setting($this->courseid); if ($sgs->exists()) { $sgrouping = new skills_grouping($this->courseid); $groupid = $sgrouping->check_for_user_in_grouping($USER->id); if ($groupid !== false) { $sgroup = new skills_group($groupid); $mform->addElement('static', 'existinggroup', get_string('existinggroup', BLOCK_SG_LANG_TABLE), $sgroup->get_group_name()); $mform->addElement('hidden', 'groupid', $groupid); $mform->setType('groupid', PARAM_INT); if ($sgs->date_restriction() && time() > $sgs->get_date()) { $mform->addElement('static', 'dateexpired', get_string('dateexpiredleft', BLOCK_SG_LANG_TABLE), get_string('dateexpiredright', BLOCK_SG_LANG_TABLE)); $mform->addElement('hidden', 'type', 'expired'); $mform->setType('type', PARAM_TEXT); } else { $mform->addElement('advcheckbox', 'editmembers', get_string('editmembers', BLOCK_SG_LANG_TABLE), null, null, array(0, 1)); // Student can only leave if not already locked. $student = new skills_group_student($this->courseid, $USER->id); if ($student->get_lock_choice() === false) { $mform->addElement('advcheckbox', 'leavegroup', get_string('leavegroup', BLOCK_SG_LANG_TABLE), null, null, array(0, 1)); $mform->disabledIf('leavegroup', 'editmembers', 'checked'); $mform->disabledIf('editmembers', 'leavegroup', 'checked'); } $mform->addElement('hidden', 'type', 'edit'); $mform->setType('type', PARAM_TEXT); } $mform->addElement('advcheckbox', 'allowjoincheck', get_string('groupsearchable', BLOCK_SG_LANG_TABLE), null, null, array(0, 1)); $mform->disabledIf('allowjoincheck', 'leavegroup', 'checked'); } else { $mform->addElement('static', 'existinggroup', get_string('existinggroup', BLOCK_SG_LANG_TABLE), get_string('nogroup', BLOCK_SG_LANG_TABLE)); if ($sgs->date_restriction() && time() > $sgs->get_date()) { $mform->addElement('static', 'dateexpired', get_string('dateexpiredleft', BLOCK_SG_LANG_TABLE), get_string('dateexpiredright', BLOCK_SG_LANG_TABLE)); $mform->addElement('hidden', 'type', 'expired'); $mform->setType('type', PARAM_TEXT); } else { if ($sgs->get_allownaming() == true) { $pagegroup = array(); $pagegroup[] = $mform->createElement('advcheckbox', 'creategroupcheck', null, null, null, array(0, 1)); $pagegroup[] = $mform->createElement('text', 'creategroup', null, array()); $mform->setType('creategroup', PARAM_TEXT); $mform->disabledIf('creategroup', 'creategroupcheck'); $mform->addGroup($pagegroup, 'create', get_string('creategroup', BLOCK_SG_LANG_TABLE), null, false); } else { // Create element outside of group so that form spacing is correct. $mform->addElement('advcheckbox', 'creategroupcheck', get_string('creategroup', BLOCK_SG_LANG_TABLE), null, null, array(0, 1)); } $mform->addElement('hidden', 'type', 'create'); $mform->setType('type', PARAM_TEXT); $mform->addElement('advcheckbox', 'allowjoincheck', get_string('groupsearchable', BLOCK_SG_LANG_TABLE), null, null, array(0, 1)); } } } else { $mform->addElement('static', 'notconfigured', get_string('notconfiguredleft', BLOCK_SG_LANG_TABLE), get_string('notconfiguredright', BLOCK_SG_LANG_TABLE)); } // Hidden elements: courseid needed for posting. $mform->addElement('hidden', 'courseid'); $mform->setType('courseid', PARAM_INT); $this->add_action_buttons(); }
$courseid = required_param('courseid', PARAM_INT); if (!blocks_skills_group_verify_access('block/skills_group:canmanageskillsgroups', true)) { redirect(new moodle_url('/course/view.php', array('id' => $courseid))); } $url = new moodle_url('/blocks/skills_group/edit_skills_group_settings.php', array('id' => $courseid, 'sesskey' => $USER->sesskey)); block_skills_group_setup_page($courseid, $url, get_string('editsettingstitle', BLOCK_SG_LANG_TABLE)); $editform = new edit_skills_group_settings_form($courseid); $toform['courseid'] = $courseid; // Retrieve any previously used settings. $sgs = new skills_group_setting($courseid); if ($sgs->exists()) { $toform['feedbacks'] = $sgs->get_feedback_id(); $toform['groupings'] = $sgs->get_grouping_id(); $toform['maxsize'] = $sgs->get_group_size(); $toform['threshold'] = $sgs->get_threshold(); $toform['allownaming'] = $sgs->get_allownaming(); if ($sgs->date_restriction()) { $toform['datecheck'] = 1; $toform['date'] = $sgs->get_date(); } else { $toform['datecheck'] = 0; $toform['date'] = null; } } $editform->set_data($toform); if ($editform->is_cancelled()) { $courseurl = new moodle_url('/course/view.php', array('id' => $courseid)); redirect($courseurl); } else { if ($fromform = $editform->get_data()) { process_form($courseid, $fromform);