Merge branch 'MDL-36760' of git://github.com/timhunt/moodle

This commit is contained in:
Sam Hemelryk
2012-11-27 10:41:41 +13:00
2 changed files with 25 additions and 2 deletions
+24 -1
View File
@@ -1631,7 +1631,7 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless {
$value = '';
// If we have a default value then export it.
if (isset($this->_defaultValues[$varname])) {
$value = array($varname => $this->_defaultValues[$varname]);
$value = $this->prepare_fixed_value($varname, $this->_defaultValues[$varname]);
}
} else {
$value = $this->_elements[$key]->exportValue($this->_submitValues, true);
@@ -1662,6 +1662,29 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless {
return $unfiltered;
}
/**
* This is a bit of a hack, and it duplicates the code in
* HTML_QuickForm_element::_prepareValue, but I could not think of a way or
* reliably calling that code. (Think about date selectors, for example.)
* @param string $name the element name.
* @param mixed $value the fixed value to set.
* @return mixed the appropriate array to add to the $unfiltered array.
*/
protected function prepare_fixed_value($name, $value) {
if (null === $value) {
return null;
} else {
if (!strpos($name, '[')) {
return array($name => $value);
} else {
$valueAry = array();
$myIndex = "['" . str_replace(array(']', '['), array('', "']['"), $name) . "']";
eval("\$valueAry$myIndex = \$value;");
return $valueAry;
}
}
}
/**
* Adds a validation rule for the given field
*
@@ -159,7 +159,7 @@ class qtype_numerical_edit_form extends question_edit_form {
if ($mform->elementExists('multiplier[0]')) {
$firstunit = $mform->getElement('multiplier[0]');
$firstunit->freeze();
$firstunit->setValue('1.0');
$mform->setDefault('multiplier[0]', '1.0');
$mform->addHelpButton('multiplier[0]', 'numericalmultiplier', 'qtype_numerical');
}
}