You are here

public function DefaultMatchingEngine::validateConfigurationForm in CRM Core 8

Same name and namespace in other branches
  1. 8.3 modules/crm_core_match/src/Plugin/crm_core_match/engine/DefaultMatchingEngine.php \Drupal\crm_core_match\Plugin\crm_core_match\engine\DefaultMatchingEngine::validateConfigurationForm()
  2. 8.2 modules/crm_core_match/src/Plugin/crm_core_match/engine/DefaultMatchingEngine.php \Drupal\crm_core_match\Plugin\crm_core_match\engine\DefaultMatchingEngine::validateConfigurationForm()

Form validation handler.

Parameters

array $form: An associative array containing the structure of the plugin form as built by static::buildConfigurationForm().

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().

Overrides MatchEngineBase::validateConfigurationForm

File

modules/crm_core_match/src/Plugin/crm_core_match/engine/DefaultMatchingEngine.php, line 331

Class

DefaultMatchingEngine
DefaultMatchingEngine class.

Namespace

Drupal\crm_core_match\Plugin\crm_core_match\engine

Code

public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
  parent::validateConfigurationForm($form, $form_state);
  if (!is_numeric($form_state
    ->getValue([
    'configuration',
    'threshold',
  ]))) {
    $form_state
      ->setErrorByName('configuration[threshold]', $this
      ->t('Threshold must be a number.'));
  }
  $rules = $form_state
    ->getValue([
    'configuration',
    'rules',
  ]);
  foreach ($rules as $field_name => $config) {
    if ($config['status'] && empty($config['operator'])) {
      $name = 'rules][' . $field_name . '][operator';
      $message = $this
        ->t('You must select an operator for enabled field.');
      $form_state
        ->setErrorByName($name, $message);
    }
    if (!is_numeric($config['score'])) {
      $name = 'rules][' . $field_name . '][score';
      $message = $this
        ->t('You must enter number in "Score" column.');
      $form_state
        ->setErrorByName($name, $message);
    }
  }
}