You are here

function cck_phone_field_widget_form in Phone Number 7

Implements hook_field_widget_form().

File

./cck_phone.module, line 634
Defines phone number fields for CCK. Provide some verifications on the phone numbers

Code

function cck_phone_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {

  // Retrieve any values set in $form_state, as will be the case during AJAX
  // rebuilds of this form.
  if (isset($form_state['values'][$field['field_name']][$langcode])) {
    $items = $form_state['values'][$field['field_name']][$langcode];
    unset($form_state['values'][$field['field_name']][$langcode]);
  }
  foreach ($items as $delta => $item) {

    // Remove any items from being displayed that are not needed.
    if (!isset($item['number']) || $item['number'] == '') {
      unset($items[$delta]);
    }
  }

  // Re-index deltas after removing empty items.
  $items = array_values($items);

  // Update order according to weight.
  $items = _field_sort_items($field, $items);

  // Essentially we use the phone_number type, extended with some enhancements.
  $element_info = element_info('phone_number');
  $element += array(
    '#type' => 'phone_number',
    '#default_value' => isset($items[$element['#delta']]) ? $items[$element['#delta']] : array(),
    '#process' => array_merge($element_info['#process'], array(
      'cck_phone_field_widget_process',
    )),
  );
  return $element;
}