if ($ADMIN->fulltree) { require_once $CFG->dirroot . '/mod/workshopplus/locallib.php'; $grades = workshopplus::available_maxgrades_list(); $settings->add(new admin_setting_configselect('workshopplus/grade', get_string('submissiongrade', 'workshopplus'), get_string('configgrade', 'workshopplus'), 80, $grades)); $settings->add(new admin_setting_configselect('workshopplus/gradinggrade', get_string('gradinggrade', 'workshopplus'), get_string('configgradinggrade', 'workshopplus'), 20, $grades)); $options = array(); for ($i = 5; $i >= 0; $i--) { $options[$i] = $i; } $settings->add(new admin_setting_configselect('workshopplus/gradedecimals', get_string('gradedecimals', 'workshopplus'), get_string('configgradedecimals', 'workshopplus'), 0, $options)); if (isset($CFG->maxbytes)) { $maxbytes = get_config('workshopplus', 'maxbytes'); $options = get_max_upload_sizes($CFG->maxbytes, 0, 0, $maxbytes); $settings->add(new admin_setting_configselect('workshopplus/maxbytes', get_string('maxbytes', 'workshopplus'), get_string('configmaxbytes', 'workshopplus'), 0, $options)); } $settings->add(new admin_setting_configselect('workshopplus/strategy', get_string('strategy', 'workshopplus'), get_string('configstrategy', 'workshopplus'), 'accumulative', workshopplus::available_strategies_list())); $options = workshopplus::available_example_modes_list(); $settings->add(new admin_setting_configselect('workshopplus/examplesmode', get_string('examplesmode', 'workshopplus'), get_string('configexamplesmode', 'workshopplus'), workshopplus::EXAMPLES_VOLUNTARY, $options)); // include the settings of allocation subplugins $allocators = core_component::get_plugin_list('workshopplusallocation'); foreach ($allocators as $allocator => $path) { if (file_exists($settingsfile = $path . '/settings.php')) { $settings->add(new admin_setting_heading('workshopplusallocationsetting' . $allocator, get_string('allocation', 'workshopplus') . ' - ' . get_string('pluginname', 'workshopplusallocation_' . $allocator), '')); include $settingsfile; } } // include the settings of grading strategy subplugins $strategies = core_component::get_plugin_list('workshopplusform'); foreach ($strategies as $strategy => $path) { if (file_exists($settingsfile = $path . '/settings.php')) { $settings->add(new admin_setting_heading('workshopplusformsetting' . $strategy, get_string('strategy', 'workshopplus') . ' - ' . get_string('pluginname', 'workshopplusform_' . $strategy), ''));
/** * Defines the workshopplus instance configuration form * * @return void */ public function definition() { global $CFG; $workshopplusconfig = get_config('workshopplus'); $mform = $this->_form; // General -------------------------------------------------------------------- $mform->addElement('header', 'general', get_string('general', 'form')); // workshopplus name $label = get_string('workshopplusname', 'workshopplus'); $mform->addElement('text', 'name', $label, array('size' => '64')); if (!empty($CFG->formatstringstriptags)) { $mform->setType('name', PARAM_TEXT); } else { $mform->setType('name', PARAM_CLEANHTML); } $mform->addRule('name', null, 'required', null, 'client'); $mform->addRule('name', get_string('maximumchars', '', 255), 'maxlength', 255, 'client'); // Introduction $this->add_intro_editor(false, get_string('introduction', 'workshopplus')); // Grading settings ----------------------------------------------------------- $mform->addElement('header', 'gradingsettings', get_string('gradingsettings', 'workshopplus')); $mform->setExpanded('gradingsettings'); $label = get_string('strategy', 'workshopplus'); $mform->addElement('select', 'strategy', $label, workshopplus::available_strategies_list()); $mform->setDefault('strategy', $workshopplusconfig->strategy); $mform->addHelpButton('strategy', 'strategy', 'workshopplus'); $grades = workshopplus::available_maxgrades_list(); $gradecategories = grade_get_categories_menu($this->course->id); $label = get_string('submissiongrade', 'workshopplus'); $mform->addGroup(array($mform->createElement('select', 'grade', '', $grades), $mform->createElement('select', 'gradecategory', '', $gradecategories)), 'submissiongradegroup', $label, ' ', false); $mform->setDefault('grade', $workshopplusconfig->grade); $mform->addHelpButton('submissiongradegroup', 'submissiongrade', 'workshopplus'); $label = get_string('gradinggrade', 'workshopplus'); $mform->addGroup(array($mform->createElement('select', 'gradinggrade', '', $grades), $mform->createElement('select', 'gradinggradecategory', '', $gradecategories)), 'gradinggradegroup', $label, ' ', false); $mform->setDefault('gradinggrade', $workshopplusconfig->gradinggrade); $mform->addHelpButton('gradinggradegroup', 'gradinggrade', 'workshopplus'); $options = array(); for ($i = 5; $i >= 0; $i--) { $options[$i] = $i; } $label = get_string('gradedecimals', 'workshopplus'); $mform->addElement('select', 'gradedecimals', $label, $options); $mform->setDefault('gradedecimals', $workshopplusconfig->gradedecimals); // Submission settings -------------------------------------------------------- $mform->addElement('header', 'submissionsettings', get_string('submissionsettings', 'workshopplus')); $label = get_string('instructauthors', 'workshopplus'); $mform->addElement('editor', 'instructauthorseditor', $label, null, workshopplus::instruction_editors_options($this->context)); $options = array(); for ($i = 7; $i >= 0; $i--) { $options[$i] = $i; } $label = get_string('nattachments', 'workshopplus'); $mform->addElement('select', 'nattachments', $label, $options); $mform->setDefault('nattachments', 1); $options = get_max_upload_sizes($CFG->maxbytes, $this->course->maxbytes, 0, $workshopplusconfig->maxbytes); $mform->addElement('select', 'maxbytes', get_string('maxbytes', 'workshopplus'), $options); $mform->setDefault('maxbytes', $workshopplusconfig->maxbytes); $label = get_string('latesubmissions', 'workshopplus'); $text = get_string('latesubmissions_desc', 'workshopplus'); $mform->addElement('checkbox', 'latesubmissions', $label, $text); $mform->addHelpButton('latesubmissions', 'latesubmissions', 'workshopplus'); // Assessment settings -------------------------------------------------------- $mform->addElement('header', 'assessmentsettings', get_string('assessmentsettings', 'workshopplus')); $label = get_string('instructreviewers', 'workshopplus'); $mform->addElement('editor', 'instructreviewerseditor', $label, null, workshopplus::instruction_editors_options($this->context)); $label = get_string('useselfassessment', 'workshopplus'); $text = get_string('useselfassessment_desc', 'workshopplus'); $mform->addElement('checkbox', 'useselfassessment', $label, $text); $mform->addHelpButton('useselfassessment', 'useselfassessment', 'workshopplus'); // Feedback ------------------------------------------------------------------- $mform->addElement('header', 'feedbacksettings', get_string('feedbacksettings', 'workshopplus')); $mform->addElement('select', 'overallfeedbackmode', get_string('overallfeedbackmode', 'mod_workshopplus'), array(0 => get_string('overallfeedbackmode_0', 'mod_workshopplus'), 1 => get_string('overallfeedbackmode_1', 'mod_workshopplus'), 2 => get_string('overallfeedbackmode_2', 'mod_workshopplus'))); $mform->addHelpButton('overallfeedbackmode', 'overallfeedbackmode', 'mod_workshopplus'); $mform->setDefault('overallfeedbackmode', 1); $options = array(); for ($i = 7; $i >= 0; $i--) { $options[$i] = $i; } $mform->addElement('select', 'overallfeedbackfiles', get_string('overallfeedbackfiles', 'workshopplus'), $options); $mform->setDefault('overallfeedbackfiles', 0); $mform->disabledIf('overallfeedbackfiles', 'overallfeedbackmode', 'eq', 0); $options = get_max_upload_sizes($CFG->maxbytes, $this->course->maxbytes); $mform->addElement('select', 'overallfeedbackmaxbytes', get_string('overallfeedbackmaxbytes', 'workshopplus'), $options); $mform->setDefault('overallfeedbackmaxbytes', $workshopplusconfig->maxbytes); $mform->disabledIf('overallfeedbackmaxbytes', 'overallfeedbackmode', 'eq', 0); $mform->disabledIf('overallfeedbackmaxbytes', 'overallfeedbackfiles', 'eq', 0); $label = get_string('conclusion', 'workshopplus'); $mform->addElement('editor', 'conclusioneditor', $label, null, workshopplus::instruction_editors_options($this->context)); $mform->addHelpButton('conclusioneditor', 'conclusion', 'workshopplus'); // Example submissions -------------------------------------------------------- $mform->addElement('header', 'examplesubmissionssettings', get_string('examplesubmissions', 'workshopplus')); $label = get_string('useexamples', 'workshopplus'); $text = get_string('useexamples_desc', 'workshopplus'); $mform->addElement('checkbox', 'useexamples', $label, $text); $mform->addHelpButton('useexamples', 'useexamples', 'workshopplus'); $label = get_string('examplesmode', 'workshopplus'); $options = workshopplus::available_example_modes_list(); $mform->addElement('select', 'examplesmode', $label, $options); $mform->setDefault('examplesmode', $workshopplusconfig->examplesmode); $mform->disabledIf('examplesmode', 'useexamples'); // Availability --------------------------------------------------------------- $mform->addElement('header', 'accesscontrol', get_string('availability', 'core')); $label = get_string('submissionstart', 'workshopplus'); $mform->addElement('date_time_selector', 'submissionstart', $label, array('optional' => true)); $label = get_string('submissionend', 'workshopplus'); $mform->addElement('date_time_selector', 'submissionend', $label, array('optional' => true)); $label = get_string('submissionendswitch', 'mod_workshopplus'); $mform->addElement('checkbox', 'phaseswitchassessment', $label); $mform->disabledIf('phaseswitchassessment', 'submissionend[enabled]'); $mform->addHelpButton('phaseswitchassessment', 'submissionendswitch', 'mod_workshopplus'); $label = get_string('assessmentstart', 'workshopplus'); $mform->addElement('date_time_selector', 'assessmentstart', $label, array('optional' => true)); $label = get_string('assessmentend', 'workshopplus'); $mform->addElement('date_time_selector', 'assessmentend', $label, array('optional' => true)); $coursecontext = context_course::instance($this->course->id); plagiarism_get_form_elements_module($mform, $coursecontext, 'mod_workshopplus'); // Common module settings, Restrict availability, Activity completion etc. ---- $features = array('groups' => true, 'groupings' => true, 'groupmembersonly' => true, 'outcomes' => true, 'gradecat' => false, 'idnumber' => false); $this->standard_coursemodule_elements(); // Standard buttons, common to all modules ------------------------------------ $this->add_action_buttons(); }