/** * @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; } }
/** * vypisuje HTML kod pro vypis simple controlu * @param LBoxFormControl $control * @return string */ protected function printHTMLControlSimple(LBoxFormControl $control) { try { if ($control instanceof LBoxFormControlChooseMore) { echo "<fieldset>"; echo "<legend><font color='#cc0000'><strong>" . $control->getName() . " Choose more values choosed:</strong></font></legend>"; foreach ($control->getValue() as $value => $choosed) { var_dump("{$choosed}"); } echo "</fieldset>"; } else { var_dump($control->getName() . " = " . $control->getValue()); } } catch (Exception $e) { throw $e; } }
/** * kontroluje, jestli byl control uzivatelem zadan */ public function validate(LBoxFormControl $control = NULL) { try { switch (true) { case $control instanceof LBoxFormControlChooseMoreFromRecords: case $control instanceof LBoxFormControlChooseMore: if (!$control->getValue()) { throw new LBoxExceptionFormValidator($control->getName() . ": " . LBoxExceptionFormValidator::MSG_FORM_VALIDATION_CONTROL_EMPTY, LBoxExceptionFormValidator::CODE_FORM_VALIDATION_CONTROL_EMPTY); } break; default: if (strlen($control->getValue()) < 1) { throw new LBoxExceptionFormValidator($control->getName() . ": " . LBoxExceptionFormValidator::MSG_FORM_VALIDATION_CONTROL_EMPTY, LBoxExceptionFormValidator::CODE_FORM_VALIDATION_CONTROL_EMPTY); } } } catch (Exception $e) { throw $e; } }
/** * kontroluje, jestli je vyplnena alespon jedna odpoved */ public function validate(LBoxFormControl $control = NULL) { try { $controls = $control->getControls(); foreach ($control->getControls() as $subControl) { // hodnota je vyplnena if (strlen($subControl->getValue()) > 0) { return; } } // hodnota nikde nebyla vyplnena throw new LBoxExceptionFormValidator($control->getName() . ": " . LBoxExceptionFormValidator::MSG_FORM_VALIDATION_CONTROL_EMPTY, LBoxExceptionFormValidator::CODE_FORM_VALIDATION_CONTROL_EMPTY); } catch (Exception $e) { throw $e; } }
/** * @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; } }