You are here

public static function ImageStyleItem::validateAllowedValues in Field Image Style 8

#element_validate callback for options field allowed values.

Parameters

$element: An associative array containing the properties and children of the generic form element.

$form_state: The current state of the form for the form this element belongs to.

Overrides ListItemBase::validateAllowedValues

See also

\Drupal\Core\Render\Element\FormElement::processPattern()

File

src/Plugin/Field/FieldType/ImageStyleItem.php, line 126

Class

ImageStyleItem
Plugin implementation of the 'image_style' field type.

Namespace

Drupal\field_image_style\Plugin\Field\FieldType

Code

public static function validateAllowedValues($element, FormStateInterface $form_state) {
  $values = $element['#value'];

  // Check that keys are valid for the field type.
  foreach ($values as $key => $value) {
    if ($error = static::validateAllowedValue($key)) {
      $form_state
        ->setError($element, $error);
      break;
    }
  }

  // Prevent removing values currently in use.
  if ($element['#field_has_data']) {
    $lost_keys = array_keys(array_diff_key($element['#allowed_values'], $values));
    if (_options_values_in_use($element['#entity_type'], $element['#field_name'], $lost_keys)) {
      $form_state
        ->setError($element, t('Allowed values list: some values are being removed while currently in use.'));
    }
  }
  $form_state
    ->setValueForElement($element, $values);
}