* @var upload_manager
*/
var $_upload_manager; //
-
-
+ /**
+ * definition_after_data executed flag
+ * @var definition_finalized
+ */
+ var $_definition_finalized = false;
/**
* The constructor function calls the abstract function definition() and it will then
// we have to know all input types before processing submission ;-)
$this->_process_submission($method);
-
- // update form definition based on final data if form submitted
- if ($this->is_submitted()) {
- $this->definition_after_data();
- }
}
/**
}
$filter = $slashed ? 'stripslashes' : NULL;
$this->_form->setDefaults($default_values, $filter);
- //update form definition when data changed
- $this->definition_after_data();
}
/**
static $validated = null; // one validation is enough
$mform =& $this->_form;
+ //finalize the form definition before any processing
+ if (!$this->_definition_finalized) {
+ $this->_definition_finalized = true;
+ $this->definition_after_data();
+ }
+
if ($this->no_submit_button_pressed()){
return false;
} elseif ($validated === null) {
* Print html form.
*/
function display() {
+ //finalize the form definition if not yet done
+ if (!$this->_definition_finalized) {
+ $this->_definition_finalized = true;
+ $this->definition_after_data();
+ }
$this->_form->display();
}