$SESSION->customdata = tool_downloaddata_users_form::get_default_form_values(); } $mform = new tool_downloaddata_users_form(null, $SESSION->customdata); if ($formdata = $mform->get_data()) { // Adding all the valid fields. if (!empty($formdata->addallfields)) { $SESSION->customdata['selectedfields'] = tool_downloaddata_processor::get_valid_user_fields(); // Removing all the selected fields. } else { if (!empty($formdata->removeallfields)) { $SESSION->customdata['selectedfields'] = array(); // Adding the selected fields. } else { if (!empty($formdata->addfieldselection)) { if (!empty($formdata->availablefields)) { $validfields = array_merge(tool_downloaddata_processor::get_valid_user_fields(), tool_downloaddata_processor::get_profile_fields()); foreach ($formdata->availablefields as $fieldindex) { $field = $validfields[intval($fieldindex)]; if (!in_array($field, $SESSION->customdata['selectedfields'])) { $SESSION->customdata['selectedfields'][] = $field; } } } // Removing the selected fields. } else { if (!empty($formdata->removefieldselection)) { if (!empty($formdata->selectedfields) && !empty($SESSION->customdata['selectedfields'])) { foreach ($formdata->selectedfields as $fieldindex) { unset($SESSION->customdata['selectedfields'][intval($fieldindex)]); } }
/** * The standard form definiton. */ public function definition() { $mform = $this->_form; $selectedfields = $this->_customdata['selectedfields']; $selectedroles = $this->_customdata['selectedroles']; $overrides = $this->_customdata['overrides']; $fields = array_merge(tool_downloaddata_processor::get_valid_user_fields(), tool_downloaddata_processor::get_profile_fields()); $roles = tool_downloaddata_processor::get_all_valid_roles(); if (empty($selectedfields)) { $selectedfields = array(get_string('noselectedfields', 'tool_downloaddata')); } if (empty($selectedroles)) { $selectedroles = array(get_string('noselectedroles', 'tool_downloaddata')); } $mform->addElement('header', 'generalhdr', get_string('downloadusersbyrole', 'tool_downloaddata')); $formatchoices = array(tool_downloaddata_processor::FORMAT_CSV => get_string('formatcsv', 'tool_downloaddata'), tool_downloaddata_processor::FORMAT_XLS => get_string('formatxls', 'tool_downloaddata')); $mform->addElement('select', 'format', get_string('format', 'tool_downloaddata'), $formatchoices); $mform->setDefault('format', $this->_customdata['format']); $encodings = core_text::get_encodings(); $mform->addElement('select', 'encoding', get_string('encoding', 'tool_downloaddata'), $encodings); $mform->setDefault('encoding', $this->_customdata['encoding']); $mform->disabledIf('encoding', 'format', 'noteq', tool_downloaddata_processor::FORMAT_CSV); $delimiters = csv_import_reader::get_delimiter_list(); $mform->addElement('select', 'delimiter_name', get_string('csvdelimiter', 'tool_downloaddata'), $delimiters); $mform->setDefault('delimiter_name', $this->_customdata['delimiter_name']); $mform->disabledIf('delimiter_name', 'format', 'noteq', tool_downloaddata_processor::FORMAT_CSV); $useoverrides = array('true' => 'Yes', 'false' => 'No'); $mform->addElement('select', 'useoverrides', get_string('useoverrides', 'tool_downloaddata'), $useoverrides); $mform->setDefault('useoverrides', $this->_customdata['useoverrides']); $mform->addHelpButton('useoverrides', 'useoverrides', 'tool_downloaddata'); // Creating the role selection elements. $mform->addElement('header', 'roleshdr', get_string('roles', 'tool_downloaddata')); $mform->setExpanded('roleshdr', true); $objs = array(); $objs[0] = $mform->createElement('select', 'availableroles', get_string('available', 'tool_downloaddata'), $roles, 'size="7"'); $objs[0]->setMultiple(true); $objs[1] = $mform->createElement('select', 'selectedroles', get_string('selected', 'tool_downloaddata'), $selectedroles, 'size="7"'); $objs[1]->setMultiple(true); $group = $mform->addElement('group', 'rolesgroup', get_string('roles', 'tool_downloaddata'), $objs, ' ', false); $mform->addHelpButton('rolesgroup', 'roles', 'tool_downloaddata'); // Creating the buttons for role the selection elements. $objs = array(); $objs[] = $mform->createElement('submit', 'addroleselection', get_string('addroleselection', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'removeroleselection', get_string('removeroleselection', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'addallroles', get_string('addallroles', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'removeallroles', get_string('removeallroles', 'tool_downloaddata')); $group = $mform->addElement('group', 'rolesbuttonsgroup', '', $objs, array(' ', '<br/>'), false); // Creating the field selection elements. $mform->addElement('header', 'fieldshdr', get_string('fields', 'tool_downloaddata')); $mform->setExpanded('fieldshdr', true); $objs = array(); $objs[0] = $mform->createElement('select', 'availablefields', get_string('available', 'tool_downloaddata'), $fields, 'size="10"'); $objs[0]->setMultiple(true); $objs[1] = $mform->createElement('select', 'selectedfields', get_string('selected', 'tool_downloaddata'), $selectedfields, 'size="10"'); $objs[1]->setMultiple(true); $group = $mform->addElement('group', 'fieldsgroup', get_string('fields', 'tool_downloaddata'), $objs, ' ', false); $mform->addHelpButton('fieldsgroup', 'fields', 'tool_downloaddata'); // Creating the buttons for the field selection elements. $objs = array(); $objs[] = $mform->createElement('submit', 'addfieldselection', get_string('addfieldselection', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'removefieldselection', get_string('removefieldselection', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'addallfields', get_string('addallfields', 'tool_downloaddata')); $objs[] = $mform->createElement('submit', 'removeallfields', get_string('removeallfields', 'tool_downloaddata')); $group = $mform->addElement('group', 'fieldsbuttonsgroup', '', $objs, array(' ', '<br/>'), false); $mform->addElement('header', 'overrideshdr', get_string('overrides', 'tool_downloaddata')); $mform->addElement('textarea', 'overrides', get_string('overrides', 'tool_downloaddata'), 'wrap="virtual" rows="3" cols="45"'); $mform->setType('overrides', PARAM_RAW); $mform->setDefault('overrides', $overrides); $mform->addHelpButton('overrides', 'overrides', 'tool_downloaddata'); if (empty($overrides)) { $mform->setExpanded('overrideshdr', false); } else { $mform->setExpanded('overrideshdr', true); } $this->add_action_buttons(false, get_string('download', 'tool_downloaddata')); $template = '<label class="qflabel" style="vertical-align:top">{label}</label> {element}'; $mform->defaultRenderer()->setGroupElementTemplate($template, 'fieldsgroup'); $mform->defaultRenderer()->setGroupElementTemplate($template, 'rolesgroup'); }