/** * @param Element $element * * @return string */ public function getAngularJSValidator(Element $element) { $name = $element->getAttribute('name'); $form = $element->closest('form'); $formName = $form ? $form->getName() : 'form' . ucfirst(substr($name, 0, strpos($name, '['))); return $formName . '[\'' . $name . '\'].$error.required'; }
protected function populateElement(Element $element) { $name = $element->getName(); if ($name && isset($_POST[$name])) { $element->setValue($_POST[$name]); } }
/** * @param Element $element * @param $args * * @return bool */ public function validate(Element $element, $args) { $this->errors = []; $this->value = $element->getValue(); foreach ($this->arrBitwise as $bitwise => $arrBitwise) { if ($this->bitwise & $bitwise) { if (!$this->{'validate' . $arrBitwise['function']}()) { $this->addMsg($arrBitwise['msg']); } } } return !$this->errors; }
/** * @param Element $element */ protected function setErrorMessages(Element $element) { $arrValidators = $element->getValidators(); foreach ($arrValidators as $validator) { if ($message = $validator->getMsg()) { $messageHolder = $this->elementFactory->create('Div'); $messageDiv = $this->elementFactory->create('Div'); $messageDiv->addChild(str_replace('{field}', $element->getName(), $message)); $messageDiv->setAttribute('ng-show', $validator->getAngularJSValidator($element)); $messageHolder->addChild($messageDiv); $element->addSibling($messageHolder); } } }
/** * @param $child * * @return $this */ public function addChild($child) { if ($child instanceof Element) { $this->fields[] = $child; } return parent::addChild($child); }
protected function populateElement(Element $element) { $name = $element->getName(); if ($name && $this->record->keyExists($name)) { if ($element->getAttribute('type') == 'checkbox') { $element->setValue(1); if ($this->record->{$name}) { $element->setAttribute('checked', 'checked'); } } elseif ($element->getAttribute('type') == 'password') { // do nothing } else { $element->setValue($this->record->{$name}); } } }
/** * @param $child * * @return $this */ public function addChild($child) { if ($child instanceof Fieldset) { $this->fieldsets[] = $child; } if ($child instanceof Form && !$this->isStepped()) { $child->setTag('div')->setClass('wrappedForm'); } // add another fieldset for buttons if (($child instanceof Submit || $child instanceof Button) && (!$this->fieldsets || !end($this->fieldsets)->hasClass('submit'))) { $this->addChild($this->elementFactory->create('Fieldset')->addClass('submit')); } if ($child instanceof Field && $this->fieldsets) { /** * Add element to last fieldset. */ end($this->fieldsets)->addChild($child); if ($child instanceof Element) { $child->transferFromElement($this); } return $this; } return parent::addChild($child); }
/** * @param Element $parent */ protected function transferFromElement(Element $parent) { if (!$parent->getParent()) { $this->pushParent($parent); } $arr = ['Decorator' => 'Decorators', 'Validator' => 'Validators', 'Handler' => 'Handlers']; foreach ($arr as $adder => $getter) { foreach ($parent->{'get' . $getter}() as $service) { if ($service->isRecursive()) { if ($getter == 'Handler') { $this->{'add' . $adder}($service); } else { $this->{'add' . $adder}(clone $service); } } } } }
/** * @param Element $element * @param Element $wrapper * * @return mixed|object */ protected function addHiddenForCheckbox(Element $element, Element $wrapper) { $hidden = $this->elementFactory->create("Hidden"); $hidden->setName($element->getName())->setValue(null); $wrapper->addChild($hidden); return $hidden; }
/** * @param null $value * * @return $this */ public function setValue($value = null) { parent::setValue($value); $this->setAttribute('value', $value); return $this; }
/** * */ public function __construct() { parent::__construct(); }