/** * Assemble icon setting. * * @param Validation $validation The validation object. * @param ValidationModel $setting The validation model. * @param string $icon The icon. * * @return void */ private function assembleIcon(Validation $validation, $setting, $icon) { $property = 'icon_' . $icon; if ($setting->{$property}) { $validation->setIcon($icon, $setting->{$property}); } }
/** * 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 form validation. * * @param \Form $form The form. * @param \FormFieldModel[] $fields The form fields. * @param ValidationModel $settings The validation model. * @param string|null $defaultLocale The default locale. * * @return Validation */ public function assemble($form, $fields, $settings, $defaultLocale = null) { $cssId = deserialize($form->cssID, true); $formId = $cssId[0] ?: 'f' . $form->id; $validation = new Validation($formId); $validation->setLocale($defaultLocale); $event = new BuildValidationSettingEvent($validation, $form, $settings); $this->eventDispatcher->dispatch($event::NAME, $event); foreach ($fields as $model) { $event = new BuildValidationFieldEvent($validation, $form, $model); $this->eventDispatcher->dispatch($event::NAME, $event); } return $validation; }
/** * Assemble the phone validator. * * @param Validation $validation The form validation. * @param Field $field The validation field. * @param \FormFieldModel $model The field model. * * @return void */ private function assemblePhoneValidator(Validation $validation, Field $field, \FormFieldModel $model) { if (in_array($model->type, $this->rgxpWidgets) && $model->rgxp === 'phone') { $field->addValidator('phone', array('country' => Format::convertLocaleToCountryCode($validation->getLocale()))); } }