function select2widget_process_callback in Select2 Field Widget 7.2
Same name and namespace in other branches
- 7 select2widget.module \select2widget_process_callback()
Created by IntelliJ IDEA. User: svip Date: 19.07.13 Time: 17:09 To change this template use File | Settings | File Templates.
1 string reference to 'select2widget_process_callback'
- select2widget_field_widget_form in ./
select2widget.module - Implements hook_field_widget_form().
File
- ./
select2widget.reference.inc, line 10
Code
function select2widget_process_callback($element) {
// #multiple select fields need a special #name.
if ($element['#multiple']) {
$element['#attributes']['multiple'] = 'multiple';
$element['#attributes']['name'] = $element['#name'] . '[]';
}
else {
$required = $element['#required'];
// If the element is required and there is no #default_value, then add an
// empty option that will fail validation, so that the user is required to
// make a choice. Also, if there's a value for #empty_value or
// #empty_option, then add an option that represents emptiness.
if ($required && !isset($element['#default_value']) || isset($element['#empty_value']) || isset($element['#empty_option'])) {
$element += array(
'#empty_value' => '',
'#empty_option' => $required ? t('- Select -') : t('- None -'),
);
// The empty option is prepended to #options and purposively not merged
// to prevent another option in #options mistakenly using the same value
// as #empty_value.
$empty_option = array(
$element['#empty_value'] => $element['#empty_option'],
);
$element['#options'] = $empty_option + $element['#options'];
}
}
// Send Drupal.settings a reference to this form element.
$data['select2widget2']['elements'][$element['#id']] = array(
'id' => $element['#id'],
'multiple' => $element['#multiple'],
);
// Attaching library, integration script, and settings array.
$element['#attached']['library'][] = array(
'select2widget',
'select2',
);
$element['#attached']['js'][] = array(
'type' => 'setting',
'data' => $data,
);
return $element;
}