You are here

function select2widget_entity_process_callback in Select2 Field Widget 7.2

Process callback: 'select2widget' element type.

1 string reference to 'select2widget_entity_process_callback'
select2widget_field_widget_form in ./select2widget.module
Implements hook_field_widget_form().

File

./select2widget.entityreference.inc, line 114

Code

function select2widget_entity_process_callback($element, &$form_state, $form) {

  // Send Drupal.settings a reference to this form element.
  $field_name = $element['#field_name'];
  $langcode = $element['#language'];
  if (!empty($form_state['field'][$field_name])) {
    $cardinality = $form_state['field'][$field_name][$langcode]['field']['cardinality'];
  }
  else {
    $parents = array_merge($element['#parents'], array(
      $field_name,
    ));
    $field = drupal_array_get_nested_value($form_state, $parents, $langcode);
    $cardinality = $field['field']['cardinality'];
  }
  $data['select2widgetajax']['elements'][$element['#id']] = array(
    'id' => $element['#id'],
    'url' => $element['#autocomplete_path'],
    'cardinality' => $cardinality,
    'init' => $element['#init'],
    'placeholder' => isset($element['#settings']['select2widgetajax']) && isset($element['#settings']['select2widgetajax']['placeholder']) ? $element['#settings']['select2widgetajax']['placeholder'] : '',
    'min_char' => isset($element['#settings']['select2widgetajax']) && isset($element['#settings']['select2widgetajax']['min_char']) ? $element['#settings']['select2widgetajax']['min_char'] : '',
  );
  if (isset($element['#settings']['select2widgetajax']) && isset($element['#settings']['select2widgetajax']['width'])) {
    $data['select2widgetajax']['elements'][$element['#id']]['width'] = $element['#settings']['select2widgetajax']['width'];
  }
  $data['select2widgetajax']['elements'][$element['#id']]['delay'] = variable_get('select2_delay', '100');

  // Attaching library, integration script, and settings array.
  $element['#attached']['library'][] = array(
    'select2widget',
    'select2',
  );
  $element['#attached']['js'][] = array(
    'type' => 'setting',
    'data' => $data,
  );
  return $element;
}