예제 #1
0
 /**
  * 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);
 }