/**
  * @param LBoxFormControl control 
  */
 public function addControl(LBoxFormControl $control)
 {
     try {
         // multiple rozdelime a prekontrolujeme zvlast
         if ($control instanceof LBoxFormControlMultiple) {
             foreach ($control->getControls() as $subControl) {
                 if (array_key_exists($subControl->getName(), $this->controls)) {
                     throw new LBoxExceptionForm($control->getName() . ": " . LBoxExceptionForm::MSG_FORM_CONTROL_DOES_EXISTS, LBoxExceptionForm::CODE_FORM_CONTROL_DOES_EXISTS);
                 }
                 $this->controls[$subControl->getName()] = $subControl;
                 if ($this->form) {
                     $control->setForm($this->form);
                     $this->form->addControl($control);
                 }
             }
         } else {
             // kontrola unikatnosti sub controls mezi sebou
             if (array_key_exists($control->getName(), $this->controls)) {
                 throw new LBoxExceptionForm($control->getName() . ": " . LBoxExceptionForm::MSG_FORM_CONTROL_DOES_EXISTS, LBoxExceptionForm::CODE_FORM_CONTROL_DOES_EXISTS);
             }
             $this->controls[$control->getName()] = $control;
             $control->setIsSubControl();
             /* pokud uz je nastaven form, musime provest kontrolu sub-controls na unikatnost apod - podle toho co Form vyzaduje
              * toto si sama zaridi metoda LBoxForm::addControl(LBoxFormControlMultiple)
              */
             if ($this->form) {
                 $control->setForm($this->form);
                 $this->form->addControl($this);
             }
         }
         $control->setPersist($this->isPersist);
     } catch (Exception $e) {
         throw $e;
     }
 }
Beispiel #2
0
 /**
  * @param LBoxFormControl $control
  * @throws LBoxExceptionForm
  */
 public function addControl(LBoxFormControl $control)
 {
     try {
         if (array_key_exists($control->getName(), $this->controls)) {
             throw new LBoxExceptionForm($control->getName() . ": " . LBoxExceptionForm::MSG_FORM_CONTROL_DOES_EXISTS, LBoxExceptionForm::CODE_FORM_CONTROL_DOES_EXISTS);
         }
         // z multistep control prebereme jeho subcontrols
         if ($control instanceof LBoxFormControlMultiple) {
             foreach ($control->getControls() as $subControl) {
                 if (!array_key_exists($subControl->getName(), $this->controls)) {
                     $this->controls[$subControl->getName()] = $subControl;
                 }
             }
         }
         if (strtolower($control->getName()) == "previous") {
             throw new LBoxExceptionFormControl(LBoxExceptionFormControl::MSG_FORM_CONTROL_NAME_FORBIDDEN, LBoxExceptionFormControl::CODE_FORM_CONTROL_NAME_FORBIDDEN);
         }
         $this->controls[$control->getName()] = $control;
         $control->setForm($this);
     } catch (Exception $e) {
         throw $e;
     }
 }