3 require_once($CFG->dirroot
.'/lib/formslib.php');
6 class autogroup_form
extends moodleform
{
9 function definition() {
12 $mform =& $this->_form
;
14 $mform->addElement('header', 'autogroup', get_string('autocreategroups', 'group'));
16 $options = array(get_string('all'));
17 $options +
= $this->_customdata
['roles'];
18 $mform->addElement('select', 'roleid', get_string('selectfromrole', 'group'), $options);
19 $mform->addRule('roleid', get_string('required'), 'required', null, 'client');
22 $options = array('groups' => get_string('groups', 'group'),
23 'members' => get_string('members', 'group'));
24 $mform->addElement('select', 'groupby', get_string('groupby', 'group'), $options);
25 $mform->addRule('groupby', get_string('required'), 'required', null, 'client');
27 $mform->addElement('text', 'number', get_string('number', 'group'),'maxlength="4" size="4"');
28 $mform->setType('number', PARAM_INT
);
29 $mform->addRule('number', null, 'numeric', null, 'client');
30 $mform->addRule('number', get_string('required'), 'required', null, 'client');
32 $options = array('random' => get_string('random', 'group'),
33 'firstname' => get_string('firstname', 'group'),
34 'lastname' => get_string('lastname', 'group'));
36 $mform->addElement('select', 'allocateby', get_string('allocateby', 'group'), $options);
37 $mform->addRule('allocateby', get_string('required'), 'required', null, 'client');
39 $grp[] = $mform->createElement('text', 'namingscheme');
40 $grp[] = $mform->createElement('static', 'namingschemehelp', null, get_string('namingschemehelp', 'group'));
41 $mform->addGroup($grp, 'namingschemegrp', get_string('namingscheme', 'group'), '<br />');
43 $mform->setType('namingschemegrp[namingscheme]', PARAM_RAW
);
44 $mform->setDefault('namingschemegrp[namingscheme]', get_string('group', 'group').' @');
45 $mform->addRule('namingschemegrp', get_string('required'), 'required', null, 'client');
46 $mform->setAdvanced('namingschemegrp');
49 $mform->addElement('hidden','courseid');
50 $mform->setType('courseid', PARAM_INT
);
52 $mform->addElement('hidden','seed');
53 $mform->setType('seed', PARAM_INT
);
56 $buttonarray[] = &$mform->createElement('submit', 'preview', get_string('preview'), 'xx');
57 $buttonarray[] = &$mform->createElement('submit', 'submitbutton', get_string('submit'));
58 $buttonarray[] = &$mform->createElement('cancel');
59 $mform->addGroup($buttonarray, 'buttonar', '', array(' '), false);
60 $mform->closeHeaderBefore('buttonar');
64 function validation($data) {
68 if (!$users = groups_get_potental_members($data['courseid'], $data['roleid'])) {
69 $errors['roleid'] = get_string('nousersinrole', 'group');
71 $usercnt = count($users);
73 /// Check the number entered is sane
74 if ($data['groupby'] == 'groups') {
76 if ($data['number'] > $usercnt ||
$data['number'] < 1) {
77 $errors['number'] = get_string('toomanygroups', 'group', $usercnt);
81 /// Check the naming scheme
82 $matchcnt = preg_match_all('/[#@]{1,1}/', $data['namingschemegrp']['namingscheme'], $matches);
85 $errors['namingschemegrp'] = get_string('badnamingscheme', 'group');
89 if (count($errors) > 0) {