]> git.mjollnir.org Git - moodle.git/commitdiff
added 2 new methods to form class data_submitted and setDefault
authorjamiesensei <jamiesensei>
Mon, 9 Oct 2006 08:32:30 +0000 (08:32 +0000)
committerjamiesensei <jamiesensei>
Mon, 9 Oct 2006 08:32:30 +0000 (08:32 +0000)
Fixed bug in id generation

course/edit2.php
course/edit_form.php
lib/formslib.php

index ef35ae4358cf9a15349c8ad11369acec5a2b4dab..794ebbdbfb9e13851f4dc9064750832325da3185 100644 (file)
 
 /// 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;
         }
index 2262c2fc1a0374e7fc8f63438cd0a9c4afe129c8..7509bf4caf3da4ec5bc786e310ad322973e4b8bd 100644 (file)
                             "((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);
     }
index 4c709094422a2fffb690817db6fc4362c7c167e3..21b85b0e4f15d0b32215e03b0d6e332846897f61 100644 (file)
@@ -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);
     }