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 +?>