You are here

function select2widget_taxonomy_process_callback in Select2 Field Widget 7.2

Process callback: 'select2widget' element type.

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

File

./select2widget.taxonomy.inc, line 5

Code

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

  // Send Drupal.settings a reference to this form element.
  $settings = $element['#settings']['select2widgetajax'];
  $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'],
    'label' => $element['#label'],
    'allow_new' => $settings['allow_new'],
    'separator' => $settings['separator'],
    'cardinality' => $cardinality,
    'delay' => variable_get('select2_delay', '100'),
    'set_level' => $settings['set_level'],
    'min_char' => $settings['min_char'],
    'placeholder' => $settings['placeholder'],
    'type' => 'taxonomy_term_reference',
    'init' => $element['#init'],
  );

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