. /** * This file contains the form for handling editing a customcert element. * * @package mod_customcert * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_customcert; defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); require_once($CFG->dirroot . '/course/moodleform_mod.php'); require_once($CFG->dirroot . '/mod/customcert/includes/colourpicker.php'); \MoodleQuickForm::registerElementType('customcert_colourpicker', $CFG->dirroot . '/mod/customcert/includes/colourpicker.php', 'MoodleQuickForm_customcert_colourpicker'); /** * The form for handling editing a customcert element. * * @package mod_customcert * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class edit_element_form extends \moodleform { /** * @var \mod_customcert\element The element object. */ protected $element; /** * Form definition. */ public function definition() { $mform =& $this->_form; $mform->updateAttributes(array('id' => 'editelementform')); $element = $this->_customdata['element']; // Add the field for the name of the element, this is required for all elements. $mform->addElement('text', 'name', get_string('elementname', 'customcert'), 'maxlength="255"'); $mform->setType('name', PARAM_TEXT); $mform->setDefault('name', get_string('pluginname', 'customcertelement_' . $element->element)); $mform->addRule('name', get_string('required'), 'required', null, 'client'); $mform->addHelpButton('name', 'elementname', 'customcert'); $this->element = \mod_customcert\element::instance($element); $this->element->render_form_elements($mform); $this->add_action_buttons(true); } /** * Fill in the current page data for this customcert. */ public function definition_after_data() { $this->element->definition_after_data($this->_form); } /** * Validation. * * @param array $data * @param array $files * @return array the errors that were found */ public function validation($data, $files) { $errors = array(); if (\core_text::strlen($data['name']) > 255) { $errors['name'] = get_string('nametoolong', 'customcert'); } $errors += $this->element->validate_form_elements($data, $files); return $errors; } }