You are here

function _webform_required_multifile in Webform Multiple File Upload 7

Same name and namespace in other branches
  1. 6 multifile.inc \_webform_required_multifile()

A Form API element validate function.

Fix Drupal core's handling of required file fields.

1 string reference to '_webform_required_multifile'
_webform_render_multifile in ./multifile.inc
Implementation of _webform_render_component().

File

./multifile.inc, line 454
Webform module file component.

Code

function _webform_required_multifile($element, $form_state) {
  $component = $element['#webform_component'];
  $parents = $element['#array_parents'];
  array_pop($parents);
  $form_key = implode('_', $parents);

  // Do not validate requiredness on back or draft button.
  if (isset($form_state['clicked_button']['#validate']) && empty($form_state['clicked_button']['#validate'])) {
    return;
  }

  // Check if a value is already set in the hidden field.
  $values = $form_state['values'];
  $key = array_shift($parents);
  $found = FALSE;
  while (isset($values[$key])) {
    if (isset($values[$key])) {
      $values = $values[$key];
      $found = TRUE;
    }
    else {
      $found = FALSE;
    }
    $key = array_shift($parents);
  }
  if (!$found || empty($values['_fids']) && empty($values['_old_fids'])) {
    if (empty($_FILES['files']['name'][$form_key]) && $component['mandatory']) {
      form_error($element, t('%field field is required.', array(
        '%field' => $component['name'],
      )));
    }
  }
}