/** * Add an element to the form * * @param object &$formElement reference to a {@link XoopsFormElement} * @param bool $required is this a "required" element? */ function addElement(&$formElement, $key = false, $var = false, $required = 'notset') { if ($key) { if ($this->targetObject->vars[$key]['readonly']) { $formElement->setExtra('disabled="disabled"'); $formElement->setName($key . '-readonly'); // Since this element is disable, we still want to pass it's value in the form $hidden = new XoopsFormHidden($key, $this->targetObject->vars[$key]['value']); $this->addElement($hidden); } $formElement->setDescription($var['form_dsc']); if (isset($this->targetObject->controls[$key]['onSelect'])) { $hidden = new XoopsFormHidden('changedField', false); $this->addElement($hidden); $otherExtra = isset($var['form_extra']) ? $var['form_extra'] : ''; $onchangedString = "this.form.elements.changedField.value='{$key}'; this.form.elements.op.value='changedField'; submit()"; $formElement->setExtra('onchange="' . $onchangedString . '"' . ' ' . $otherExtra); } else { if (isset($var['form_extra'])) { $formElement->setExtra($var['form_extra']); } } $controls = $this->targetObject->controls; if (isset($controls[$key]['js'])) { $formElement->customValidationCode[] = $controls[$key]['js']; } parent::AddElement($formElement, $required == 'notset' ? $var['required'] : $required); } else { parent::AddElement($formElement, $required == 'notset' ? false : true); } unset($formElement); }