ResponsiveImageStyleForm::validateForm

public ResponsiveImageStyleForm::validateForm(array &$form, FormStateInterface $form_state)

Form validation handler.

Parameters

array $form: An associative array containing the structure of the form.

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

Overrides FormBase::validateForm

File

core/modules/responsive_image/src/ResponsiveImageStyleForm.php, line 217

Class

ResponsiveImageStyleForm
Form controller for the responsive image edit/add forms.

Namespace

Drupal\responsive_image

Code

public function validateForm(array &$form, FormStateInterface $form_state) {
  parent::validateForm($form, $form_state);
  // Only validate on edit.
  if ($form_state->hasValue('keyed_styles')) {
    // Check if another breakpoint group is selected.
    if ($form_state->getValue('breakpoint_group') != $form_state->getCompleteForm()['breakpoint_group']['#default_value']) {
      // Remove the image style mappings since the breakpoint ID has changed.
      $form_state->unsetValue('keyed_styles');
    }

    // Check that at least 1 image style has been selected when using sizes.
    foreach ($form_state->getValue('keyed_styles') as $breakpoint_id => $multipliers) {
      foreach ($multipliers as $multiplier => $image_style_mapping) {
        if ($image_style_mapping['image_mapping_type'] === 'sizes') {
          if (empty($image_style_mapping['sizes'])) {
            $form_state->setError($form['keyed_styles'][$breakpoint_id][$multiplier]['sizes'], 'Provide a value for the sizes attribute.');
          }
          if (empty(array_keys(array_filter($image_style_mapping['sizes_image_styles'])))) {
            $form_state->setError($form['keyed_styles'][$breakpoint_id][$multiplier]['sizes_image_styles'], 'Select at least one image style.');
          }
        }
      }
    }
  }
}
doc_Drupal
2016-10-29 09:38:05
Comments
Leave a Comment

Please login to continue.