diff -Naur moodle_pregroupfreezefix/lib/pear/HTML/QuickForm/group.php moodle/lib/pear/HTML/QuickForm/group.php
--- moodle_pregroupfreezefix/lib/pear/HTML/QuickForm/group.php 2020-08-14 16:42:37.000000000 +1000
+++ moodle/lib/pear/HTML/QuickForm/group.php 2020-08-18 15:33:33.250706102 +1000
@@ -95,6 +95,7 @@
public function __construct($elementName=null, $elementLabel=null, $elements=null, $separator=null, $appendName = true) {
parent::__construct($elementName, $elementLabel);
$this->_type = 'group';
+ $this->_persistantFreeze = true;
if (isset($elements) && is_array($elements)) {
$this->setElements($elements);
}
@@ -470,6 +471,7 @@
function exportValue(&$submitValues, $assoc = false)
{
$value = null;
+ $defaults = $this->_mform->_defaultValues;
foreach (array_keys($this->_elements) as $key) {
$elementName = $this->_elements[$key]->getName();
if ($this->_appendName) {
@@ -481,7 +483,17 @@
$this->_elements[$key]->setName($this->getName() . '[' . $elementName . ']');
}
}
- $v = $this->_elements[$key]->exportValue($submitValues, $assoc);
+ //Check if individual elements are frozen.
+ if ($this->_elements[$key]->isFrozen() && !$this->_elements[$key]->_persistantFreeze) {
+ $varname = $this->_elements[$key]->getName();
+ $v = null;
+ // If we have a default value then export it.
+ if (isset($defaults[$varname])) {
+ $v = $this->_elements[$key]->_prepareValue($defaults[$varname], $assoc);
+ }
+ } else {
+ $v = $this->_elements[$key]->exportValue($submitValues, $assoc);
+ }
if ($this->_appendName) {
$this->_elements[$key]->setName($elementName);
}
@@ -585,4 +597,4 @@
// }}}
} //end class HTML_QuickForm_group
-?>
\ No newline at end of file
+?>