From 230a910a0b6d3d6880028b544acb32ef0ef63f63 Mon Sep 17 00:00:00 2001 From: jamiesensei Date: Mon, 9 Oct 2006 08:32:30 +0000 Subject: [PATCH] added 2 new methods to form class data_submitted and setDefault Fixed bug in id generation --- course/edit2.php | 5 ++--- course/edit_form.php | 6 +++--- lib/formslib.php | 38 +++++++++++++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/course/edit2.php b/course/edit2.php index ef35ae4358..794ebbdbfb 100644 --- a/course/edit2.php +++ b/course/edit2.php @@ -177,10 +177,9 @@ /// If data submitted, then process and store. - if ($mform->validate()) { - - $fromform=(object)$mform->exportValues(); + if ($fromform=$mform->data_submitted()) { + if (!empty($fromform->enrolstartdisabled)){ $fromform->enrolstartdate = 0; } diff --git a/course/edit_form.php b/course/edit_form.php index 2262c2fc1a..7509bf4caf 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -204,10 +204,10 @@ "((this.selectedIndex==0)?true:false);")); $mods = array(0=>get_string('allownone')); $mods += get_records_menu("modules", '','','','id, name'); - $disabled=($mform->exportValue('restrictmodules')==0) ? " =\"disabled\"" : ""; + $disabled=($mform->exportValue('restrictmodules')===0) ? array('disabled' => 'disabled') : array(); $mform->addElement('select', 'allowedmods', get_string("to"),$mods, - array('multiple'=>"multiple", 'size'=>"10", 'id'=>"allowedmods", - 'disabled' => $disabled)); + array('multiple'=>"multiple", 'size'=>"10", 'id'=>"allowedmods") + +$disabled); }else { $mform->addElement('hidden', 'restrictmodules', $default->restrictmodules); } diff --git a/lib/formslib.php b/lib/formslib.php index 4c70909442..21b85b0e4f 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -199,6 +199,37 @@ class moodleform extends HTML_QuickForm_DHTMLRulesTableless{ return $unfiltered; } } + /** + * Initializes a default form value + * + * @param string $elementname element name + * @param mixed $values values for that element name + * @param mixed $filter (optional) filter(s) to apply to default value + * @access public + * @return void + */ + function setDefault($elementName='', $defaultValue = null, $filter = null){ + $this->setDefaults(array($elementName =>$defaultValue), $filter); + } // end func setDefault + /** + * Returns 'safe' elements' values + * + * Unlike getSubmitValues(), this will return only the values + * corresponding to the elements present in the form. + * This function also runs validate() and returns false if the form doesn't validate + * + * @param mixed Array/string of element names, whose values we want. If not set then return all elements. + * @access public + * @return object An object with property values set to elements' values + * @throws HTML_QuickForm_Error + */ + function data_submitted($elementList = null, $addslashes=true){ + if (!$this->validate()){ + return false; + }else{ + return (object)$this->exportValues($elementList, $addslashes); + } + } } /** @@ -310,7 +341,12 @@ class moodleform_renderer extends HTML_QuickForm_Renderer_Tableless{ } $this->_templates[$element->getName()]=$html; - $element->updateAttributes(array('id'=>'id_'.$element->getAttribute('id'))); + if (!is_null($element->getAttribute('id'))) { + $id = $element->getAttribute('id'); + } else { + $id = $element->getName(); + } + $element->updateAttributes(array('id'=>'id_'.$id)); parent::renderElement($element, $required, $error); } -- 2.39.5