You are here

function addressfield_phone_form_field_ui_field_edit_form_alter in Address Field Phone 7

Implements hook_form_FORM_ID_alter().

File

./addressfield_phone.module, line 299
Add additional phone fields to addressfield.

Code

function addressfield_phone_form_field_ui_field_edit_form_alter(&$form, $form_state, $form_id) {

  // Do nothing in a locked field.
  if (!isset($form['instance']) || !empty($form['#field']['locked'])) {
    return;
  }
  if ($form['instance']['widget']['type']['#value'] == 'addressfield_standard') {
    $entity_type = $form['instance']['entity_type']['#value'];
    $field_name = $form['instance']['field_name']['#value'];
    $bundle = $form['instance']['bundle']['#value'];
    $field = field_info_instance($entity_type, $field_name, $bundle);
    $settings = $field['widget']['settings'];
    $form['instance']['widget']['settings']['phone_number_fields'] = array(
      '#type' => 'fieldset',
      '#title' => t('Available Phone Number Fields'),
      '#description' => t('If no phone fields are selected, all phones fields will be available as optional.'),
      '#states' => array(
        'visible' => array(
          // action to take.
          ':input[name="instance[widget][settings][format_handlers][phone]"]' => array(
            'checked' => TRUE,
          ),
        ),
      ),
    );
    $field_options = array(
      '' => t('Hidden'),
      'optional' => t('Optional'),
      'required' => t('Required'),
    );
    foreach (_addressfield_phone_number_options_list() as $number => $label) {
      $value = '';
      if (!empty($settings['phone_number_fields'][$number])) {
        $value = $settings['phone_number_fields'][$number];
      }
      $form['instance']['widget']['settings']['phone_number_fields'][$number] = array(
        '#type' => 'select',
        '#title' => $label,
        '#options' => $field_options,
        '#default_value' => $value,
      );
    }
  }
}