/** * Create the field validation object. * * @param Validation $validation The form validation. * @param \FormFieldModel $model The field model. * * @return Field */ private function createField(Validation $validation, $model) { $field = $validation->addField($this->getFieldIdentifier($model)); if ($model->fv_enabled === 'disabled') { $field->setEnabled(false); } if ($model->fv_enabled !== 'custom') { return $field; } $field->setAutoFocus($model->fv_autofocus)->setIcon($model->fv_icon)->setVerbose($model->fv_verbose); foreach (array('message', 'selector') as $option) { $this->assembleOption($field, $model, $option, true); } if ($model->fv_advanced) { $this->assembleOption($field, $model, 'row', true); if (is_numeric($model->fv_threshold)) { $field->setThreshold($model->fv_threshold); } if ($model->fv_err) { if ($model->fv_err === 'selector') { $field->setErr($model->fv_err_selector); } else { $field->setErr($model->fv_err); } } } return $field; }
/** * Assemble the password validators. * * @param Validation $validation Form validation. * @param Field $field The validation field. * @param \FormFieldModel $model The field model. * * @return void */ private function assemblePasswordValidators(Validation $validation, Field $field, $model) { if ($model->type !== 'password') { return; } $minLength = $this->config->get('minPasswordLength'); $confirm = $validation->addField($model->name . '_confirm'); $confirm->addValidator('identical', array('field' => $model->name, 'message' => $this->translator->translate('ERR.passwordMatch'))); if ($minLength) { $options = array('trim' => true, 'min' => $minLength); $field->addValidator('stringLength', $options); $confirm->addValidator('stringLength', $options); } }