#71 Added validation for element and template name length

This commit is contained in:
Mark Nelson 2017-01-31 17:15:49 +08:00
parent ee3bdf7c18
commit 7e1dcd3cf7
3 changed files with 16 additions and 3 deletions

View file

@ -49,7 +49,7 @@ class edit_element_form extends \moodleform {
$element = $this->_customdata['element']; $element = $this->_customdata['element'];
// Add the field for the name of the element, this is required for all elements. // Add the field for the name of the element, this is required for all elements.
$mform->addElement('text', 'name', get_string('elementname', 'customcert')); $mform->addElement('text', 'name', get_string('elementname', 'customcert'), 'maxlength="255"');
$mform->setType('name', PARAM_TEXT); $mform->setType('name', PARAM_TEXT);
$mform->setDefault('name', get_string('pluginname', 'customcertelement_' . $element->element)); $mform->setDefault('name', get_string('pluginname', 'customcertelement_' . $element->element));
$mform->addRule('name', get_string('required'), 'required', null, 'client'); $mform->addRule('name', get_string('required'), 'required', null, 'client');
@ -76,6 +76,14 @@ class edit_element_form extends \moodleform {
* @return array the errors that were found * @return array the errors that were found
*/ */
public function validation($data, $files) { public function validation($data, $files) {
return $this->element->validate_form_elements($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;
} }
} }

View file

@ -51,7 +51,7 @@ class edit_form extends \moodleform {
$mform =& $this->_form; $mform =& $this->_form;
$mform->addElement('text', 'name', get_string('name', 'customcert')); $mform->addElement('text', 'name', get_string('name', 'customcert'), 'maxlength="255"');
$mform->setType('name', PARAM_TEXT); $mform->setType('name', PARAM_TEXT);
$mform->addRule('name', null, 'required'); $mform->addRule('name', null, 'required');
@ -130,6 +130,10 @@ class edit_form extends \moodleform {
public function validation($data, $files) { public function validation($data, $files) {
$errors = parent::validation($data, $files); $errors = parent::validation($data, $files);
if (\core_text::strlen($data['name']) > 255) {
$errors['name'] = get_string('nametoolong', 'customcert');
}
// Go through the data and check any width, height or margin values. // Go through the data and check any width, height or margin values.
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
if (strpos($key, 'pagewidth_') !== false) { if (strpos($key, 'pagewidth_') !== false) {

View file

@ -86,6 +86,7 @@ $string['modulename_help'] = 'This module allows for the dynamic generation of P
$string['modulename_link'] = 'Custom_certificate_module'; $string['modulename_link'] = 'Custom_certificate_module';
$string['mycertificates'] = 'My certificates'; $string['mycertificates'] = 'My certificates';
$string['name'] = 'Name'; $string['name'] = 'Name';
$string['nametoolong'] = 'You have exceeded the maximum length allowed for the name';
$string['nocustomcerts'] = 'There are no custom certificates for this course'; $string['nocustomcerts'] = 'There are no custom certificates for this course';
$string['noimage'] = 'No image'; $string['noimage'] = 'No image';
$string['notemplates'] = 'No templates'; $string['notemplates'] = 'No templates';