/** * hook to add plagiarism specific settings to a module settings page. * @param object $mform - Moodle form * @param object $context - current context */ public function get_form_elements_module($mform, $context, $modulename = "") { global $CFG, $DB, $COURSE; $plagiarismsettings = $this->get_settings(); if (!$plagiarismsettings) { return; } // Hack to prevent this from showing on custom compilatioassignment type. if ($mform->elementExists('seuil_faible')) { return; } $cmid = optional_param('update', 0, PARAM_INT); // We can't access $this->_cm here. if (!empty($modulename)) { $modname = 'compilatio_enable_' . $modulename; if (empty($plagiarismsettings[$modname])) { return; // Return if compilatio is not enabled for the module } } if (!empty($cmid)) { $plagiarismvalues = $DB->get_records_menu('plagiarism_compilatio_config', array('cm' => $cmid), '', 'name, value'); } // The cmid(0) is the default list. $plagiarismdefaults = $DB->get_records_menu('plagiarism_compilatio_config', array('cm' => 0), '', 'name, value'); $plagiarismelements = $this->config_options(); if (has_capability('plagiarism/compilatio:enable', $context)) { compilatio_get_form_elements($mform); if ($mform->elementExists('compilatio_draft_submit')) { if ($mform->elementExists('var4')) { $mform->disabledIf('compilatio_draft_submit', 'var4', 'eq', 0); } else { if ($mform->elementExists('submissiondrafts')) { $mform->disabledIf('compilatio_draft_submit', 'submissiondrafts', 'eq', 0); } } } // Disable all plagiarism elements if use_plagiarism eg 0. foreach ($plagiarismelements as $element) { if ($element != 'use_compilatio') { // Ignore this var. $mform->disabledIf($element, 'use_compilatio', 'eq', 0); } } } else { // Add plagiarism settings as hidden vars. foreach ($plagiarismelements as $element) { $mform->addElement('hidden', $element); } } // Now set defaults. foreach ($plagiarismelements as $element) { if (isset($plagiarismvalues[$element])) { $mform->setDefault($element, $plagiarismvalues[$element]); } else { if (isset($plagiarismdefaults[$element])) { $mform->setDefault($element, $plagiarismdefaults[$element]); } } } }
protected function definition() { $mform =& $this->_form; compilatio_get_form_elements($mform, true); $this->add_action_buttons(true); }