You are here

function bat_calendar_reference_field_widget_form in Booking and Availability Management Tools for Drupal 7

Implements hook_field_widget_form().

File

modules/bat_calendar_reference/bat_calendar_reference.module, line 736
Defines a field type for referencing event information.

Code

function bat_calendar_reference_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $widget = array(
    '#theme_wrappers' => array(
      'container',
      'form_element',
    ),
    '#attributes' => array(
      'class' => array(
        'container-inline',
      ),
    ),
  );
  switch ($instance['widget']['type']) {
    case 'bat_calendar_reference_unit_autocomplete':
      $widget['unit_id'] = array(
        '#type' => 'textfield',
        '#title' => t('Unit'),
        '#default_value' => isset($items[$delta]['unit_id']) ? $items[$delta]['unit_id'] : NULL,
        '#autocomplete_path' => 'bat_calendar_reference/autocomplete/units/' . $instance['entity_type'] . '/' . $instance['bundle'] . '/' . $field['field_name'],
        '#size' => 60,
        '#maxlength' => 255,
        '#element_validate' => array(
          'bat_calendar_reference_autocomplete_unit_validate',
        ),
        '#value_callback' => 'bat_calendar_reference_unit_autocomplete_value',
      );
      $widget['event_type_id'] = array(
        '#type' => 'textfield',
        '#title' => t('Event type'),
        '#default_value' => isset($items[$delta]['event_type_id']) ? $items[$delta]['event_type_id'] : NULL,
        '#autocomplete_path' => 'bat_calendar_reference/autocomplete/event_types/' . $instance['entity_type'] . '/' . $instance['bundle'] . '/' . $field['field_name'],
        '#size' => 60,
        '#maxlength' => 255,
        '#element_validate' => array(
          'bat_calendar_reference_autocomplete_event_type_validate',
        ),
        '#value_callback' => 'bat_calendar_reference_event_type_autocomplete_value',
      );
      break;
    case 'bat_calendar_reference_unit_type_autocomplete':
      $widget['unit_type_id'] = array(
        '#type' => 'textfield',
        '#title' => t('Unit type'),
        '#default_value' => isset($items[$delta]['unit_type_id']) ? $items[$delta]['unit_type_id'] : NULL,
        '#autocomplete_path' => 'bat_calendar_reference/autocomplete/unit_types/' . $instance['entity_type'] . '/' . $instance['bundle'] . '/' . $field['field_name'],
        '#size' => 60,
        '#maxlength' => 255,
        '#element_validate' => array(
          'bat_calendar_reference_autocomplete_unit_type_validate',
        ),
        '#value_callback' => 'bat_calendar_reference_unit_type_autocomplete_value',
      );
      $widget['event_type_id'] = array(
        '#type' => 'textfield',
        '#title' => t('Event type'),
        '#default_value' => isset($items[$delta]['event_type_id']) ? $items[$delta]['event_type_id'] : NULL,
        '#autocomplete_path' => 'bat_calendar_reference/autocomplete/event_types/' . $instance['entity_type'] . '/' . $instance['bundle'] . '/' . $field['field_name'],
        '#size' => 60,
        '#maxlength' => 255,
        '#element_validate' => array(
          'bat_calendar_reference_autocomplete_event_type_validate',
        ),
        '#value_callback' => 'bat_calendar_reference_event_type_autocomplete_value',
      );
      break;
  }
  return $element + $widget;
}