You are here

function chosen_pre_render_select in Chosen 7.3

Same name and namespace in other branches
  1. 7.2 chosen.module \chosen_pre_render_select()

Implementation of chosen_pre_render_select().

Atteches the library to the field and pass the fieldinstance related options.

TODO: Get the field specific configuration. TODO: Pass the correct cpnfiguration.

See also

pre_render

1 string reference to 'chosen_pre_render_select'
chosen_element_info_alter in ./chosen.module
Implements hook_element_info_alter().

File

./chosen.module, line 386
General functions and hook implementations.

Code

function chosen_pre_render_select($element) {
  $field_info = isset($element['#field_name']) ? field_info_field($element['#field_name']) : FALSE;
  $element_name = $element['#name'];
  if (!empty($element['#multiple'])) {

    // We need to add those brackets for multivalue fields.
    $element_name = $element['#name'] . '[]';
  }
  $max_selected_options = FALSE;
  if (isset($field_info['cardinality'])) {
    if ($field_info['cardinality'] != FIELD_CARDINALITY_UNLIMITED) {
      $max_selected_options = $field_info['cardinality'];
    }
  }
  $element['#attached']['library'][] = array(
    'chosen',
    'drupal.chosen',
  );
  $element['#attached']['js'][] = array(
    'data' => array(
      'chosen' => array(
        'multiple' => array(
          $element_name => isset($element['#multiple']) ? $element['#multiple'] : FALSE,
        ),
        'max_selected_options' => array(
          $element_name => $max_selected_options,
        ),
      ),
    ),
    'type' => 'setting',
  );
  return $element;
}