MDL-80818 QuickForm: Freeze all elements with the same name
There are some radio buttons in activity Completion Conditions settings that must be frozen altogether, because all of them have the same name.
This commit is contained in:
committed by
Amaia Anabitarte
parent
fa4a79d6d7
commit
b459df584c
@@ -1570,15 +1570,16 @@ class HTML_QuickForm extends HTML_Common {
|
||||
$elementList = array_flip($elementList);
|
||||
}
|
||||
|
||||
$frozen = [];
|
||||
foreach (array_keys($this->_elements) as $key) {
|
||||
$name = $this->_elements[$key]->getName();
|
||||
if ($this->_freezeAll || isset($elementList[$name])) {
|
||||
$this->_elements[$key]->freeze();
|
||||
unset($elementList[$name]);
|
||||
$frozen[$name] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($elementList)) {
|
||||
if (count($elementList) != count($frozen)) {
|
||||
return self::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Nonexistant element(s): '" . implode("', '", array_keys($elementList)) . "' in HTML_QuickForm::freeze()", 'HTML_QuickForm_Error', true);
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user