You are here

function file_resup_field_widget_submit in File Resumable Upload 8

Same name and namespace in other branches
  1. 7 file_resup.field.inc \file_resup_field_widget_submit()

#submit callback for the upload button of the field widget element.

1 string reference to 'file_resup_field_widget_submit'
file_resup_field_widget_process in ./file_resup.field.inc
#process callback for the field widget element.

File

./file_resup.field.inc, line 206
Written by Henri MEDOT <henri.medot[AT]absyx[DOT]fr> http://www.absyx.fr

Code

function file_resup_field_widget_submit($form, &$form_state) {
  $button = $form_state['triggering_element'];
  $element = drupal_array_get_nested_value($form, array_slice($button['#array_parents'], 0, -1));
  $field_name = $element['#field_name'];
  $langcode = $element['#language'];
  $parents = $element['#field_parents'];
  $field_state = field_form_get_state($parents, $field_name, $langcode, $form_state);
  $items = $field_state['items'];

  // Remove possible duplicate items.
  $fids = array();
  foreach ($items as $delta => $item) {
    if (in_array($item['fid'], $fids)) {
      unset($items[$delta]);
    }
    else {
      $fids[] = $item['fid'];
    }
  }
  $items = array_values($items);

  // Append our items.
  if (!empty($element['resup']['#value'])) {
    $fids = array_diff(explode(',', $element['resup']['#value']), $fids);
    $field = field_widget_field($element, $form_state);
    foreach ($fids as $fid) {
      $item = array(
        'fid' => $fid,
      );

      // Respect display default when available.
      if (!empty($field['settings']['display_field'])) {
        $item['display'] = $field['settings']['display_default'];
      }
      $items[] = $item;
    }
  }
  drupal_array_set_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2), $items);
  $field_state['items'] = $items;
  field_form_set_state($parents, $field_name, $langcode, $form_state, $field_state);
}