You are here

private function ContextFormBase::validateConditions in Context 8.4

Validate the condition plugins configuration forms.

Parameters

array $form: The rendered form.

\Drupal\Core\Form\FormStateInterface $form_state: The current form state.

1 call to ContextFormBase::validateConditions()
ContextFormBase::validateForm in modules/context_ui/src/Form/ContextFormBase.php
Form validation handler.

File

modules/context_ui/src/Form/ContextFormBase.php, line 219

Class

ContextFormBase
Provides a context form base.

Namespace

Drupal\context_ui\Form

Code

private function validateConditions(array &$form, FormStateInterface $form_state) {
  $conditions = $form_state
    ->getValue('conditions', []);

  // Loop trough each condition and update the configuration values by
  // validating the conditions form.
  foreach ($conditions as $condition_id => $configuration) {
    $condition = $this->entity
      ->getCondition($condition_id);
    $condition_values = (new FormState())
      ->setValues($configuration);
    $condition
      ->validateConfigurationForm($form, $condition_values);
    if ($condition_values
      ->hasAnyErrors()) {

      // In case of errors, copy them back from the dummy FormState to the
      // master form.
      foreach ($condition_values
        ->getErrors() as $element => $error) {
        $form_state
          ->setErrorByName("conditions][{$condition_id}][{$element}", $error);
      }
    }
  }
}