You are here

public static function WebformManagedFileBase::validateManagedFile in Webform 6.x

Same name and namespace in other branches
  1. 8.5 src/Plugin/WebformElement/WebformManagedFileBase.php \Drupal\webform\Plugin\WebformElement\WebformManagedFileBase::validateManagedFile()

Form API callback. Consolidate the array of fids for this field into a single fids.

File

src/Plugin/WebformElement/WebformManagedFileBase.php, line 853

Class

WebformManagedFileBase
Provides a base class webform 'managed_file' elements.

Namespace

Drupal\webform\Plugin\WebformElement

Code

public static function validateManagedFile(array &$element, FormStateInterface $form_state, &$complete_form) {

  // Issue #3130448: Add custom #required_message support to
  // ManagedFile elements.
  // @see https://www.drupal.org/project/drupal/issues/3130448
  if (!empty($element['#required_error'])) {
    $errors = $form_state
      ->getErrors();
    $key = $element['#webform_key'];
    if (isset($errors[$key]) && $errors[$key] instanceof TranslatableMarkup && $errors[$key]
      ->getUntranslatedString() === '@name field is required.') {
      $errors[$key]
        ->__construct($element['#required_error']);
    }
  }
  if (!empty($element['#files'])) {
    $fids = array_keys($element['#files']);
    if (empty($element['#multiple'])) {
      $form_state
        ->setValueForElement($element, reset($fids));
    }
    else {
      $form_state
        ->setValueForElement($element, $fids);
    }
  }
  else {
    $form_state
      ->setValueForElement($element, NULL);
  }
}