function select2widget_entityreference_widget_settings_form in Select2 Field Widget 7.2
Implements hook_field_widget_settings_form().
File
- ./
select2widget.entityreference.inc, line 13
Code
function select2widget_entityreference_widget_settings_form($field, $instance) {
$widget = $instance['widget'];
$settings = array_replace_recursive(field_info_widget_settings($widget['type']), $widget['settings']);
$form = array();
if ($widget['type'] == 'select2widgetajax') {
$view_mode_options = array(
'select2widget_labels' => t('Entity labels (no render)'),
);
$entity_info = entity_get_info();
$entity_type = isset($field['settings']['target_type']) ? $field['settings']['target_type'] : NULL;
if (isset($entity_info[$entity_type]['view modes'])) {
foreach ($entity_info[$entity_type]['view modes'] as $key => $value) {
$view_mode_options[$key] = $value['label'];
}
}
$form['select2widgetajax'] = array(
'#type' => 'fieldset',
'#title' => t('Select2Widget settings'),
'#tree' => TRUE,
);
$form['select2widgetajax']['view_mode'] = array(
'#type' => 'select',
'#title' => t('View mode'),
'#default_value' => isset($settings['select2widgetajax']['view_mode']) ? $settings['select2widgetajax']['view_mode'] : reset($view_mode_options),
'#options' => $view_mode_options,
'#description' => t('Install !entity_view_mode_link module to create own view modes.', array(
'!entity_view_mode_link' => l(t('"Entity view modes"'), "http://drupal.org/project/entity_view_mode", array(
'attributes' => array(
'target' => '_blank',
),
)),
)),
);
$form['select2widgetajax']['placeholder'] = array(
'#type' => 'textfield',
'#title' => t('Placeholder text'),
'#description' => t('Type a text for the placeholder'),
'#default_value' => $settings['select2widgetajax']['placeholder'],
);
$form['select2widgetajax']['match_operator'] = array(
'#type' => 'select',
'#title' => t('Search matching'),
'#default_value' => $settings['select2widgetajax']['match_operator'],
'#options' => array(
'STARTS_WITH' => t('Starts with'),
'CONTAINS' => t('Contains'),
),
'#description' => t('Select the method used to collect autocomplete suggestions. Note that <em>Contains</em> can cause performance issues on sites with thousands of nodes.'),
);
$form['select2widgetajax']['match_limit'] = array(
'#type' => 'textfield',
'#title' => t('Limit number of matches'),
'#description' => t('Use 0 for no limit. Performance may be affected for a large number of matches.'),
'#default_value' => $settings['select2widgetajax']['match_limit'],
'#element_validate' => array(
'element_validate_integer',
),
'#required' => TRUE,
);
$form['select2widgetajax']['width'] = array(
'#type' => 'textfield',
'#size' => '5',
'#title' => t('Width'),
'#default_value' => isset($settings['select2widgetajax']['width']) ? $settings['select2widgetajax']['width'] : '',
'#element_validate' => array(
'_element_width_validate',
),
'#description' => t('You may either leave Width empty or enter a string like "500px" or "50%"'),
);
$form['select2widgetajax']['min_char'] = array(
'#type' => 'select',
'#title' => t('Number of minimum character'),
'#description' => t('How many character must be typed before results is displayed'),
'#options' => range(0, 5),
'#default_value' => isset($settings['select2widgetajax']['min_char']) ? $settings['select2widgetajax']['min_char'] : 0,
);
}
return $form;
}