You are here

function composed_field_field_widget_form in Composed Field 7

Implements hook_field_widget_form().

File

./composed_field.module, line 194
Defines composed field type.

Code

function composed_field_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $settings = $instance['widget']['settings'];
  $number_of_subfields = isset($settings['number_of_subfields']) ? $settings['number_of_subfields'] : 1;
  $element['composed']['#theme_wrappers'] = array(
    'form_element',
  );
  $default_value = isset($items[$delta]['composed']) ? $items[$delta]['composed'] : array();

  // Create as many form elements in each tab as there are subfields.
  for ($subfield = 1; $subfield <= $number_of_subfields; $subfield++) {
    $element['composed'][$subfield] = _composed_field_build_subfield_element($settings, $subfield, $default_value);
  }
  if (isset($settings['inline']) && $settings['inline']) {
    $prefix = isset($element['composed'][1]['#prefix']) ? $element['composed'][1]['#prefix'] : '';
    $suffix = isset($element['composed'][$number_of_subfields]['#suffix']) ? $element['composed'][$number_of_subfields]['#suffix'] : '';
    $element['composed'][1]['#prefix'] = '<div class="container-inline">' . $prefix;
    $element['composed'][$number_of_subfields]['#suffix'] = $suffix . '</div>';
  }
  return $element;
}