function views_autocomplete_filters_filter_hander_expose_form in Views Autocomplete Filters 7
Helper function for expose_form method for autocomplete filter handlers. Needed to avoid code duplicates.
See also
views_autocomplete_filters_handler_filter_string()
views_autocomplete_filters_handler_filter_combine()
4 calls to views_autocomplete_filters_filter_hander_expose_form()
- views_autocomplete_filters_handler_filter_combine::expose_form in views/
handlers/ views_autocomplete_filters_handler_filter_combine.inc - Options form subform for exposed filter options.
- views_autocomplete_filters_handler_filter_search_api_fulltext::expose_form in views/
handlers/ views_autocomplete_filters_handler_filter_search_api_fulltext.inc - Options form subform for exposed filter options.
- views_autocomplete_filters_handler_filter_search_api_text::expose_form in views/
handlers/ views_autocomplete_filters_handler_filter_search_api_text.inc - Options form subform for exposed filter options.
- views_autocomplete_filters_handler_filter_string::expose_form in views/
handlers/ views_autocomplete_filters_handler_filter_string.inc - Options form subform for exposed filter options.
File
- ./
views_autocomplete_filters.module, line 76
Code
function views_autocomplete_filters_filter_hander_expose_form(&$form, &$form_state, $filter_handler) {
$field_options_all = $filter_handler->view->display_handler
->get_field_labels();
// Limit options to fields with the same name.
foreach ($filter_handler->view->display_handler
->get_handlers('field') as $id => $handler) {
if ($handler->real_field == $filter_handler->real_field) {
$field_options[$id] = $field_options_all[$id];
}
}
if (empty($field_options)) {
$field_options[''] = t('Add some fields to view');
}
elseif (empty($filter_handler->options['expose']['autocomplete_field']) && !empty($field_options[$filter_handler->options['id']])) {
$filter_handler->options['expose']['autocomplete_field'] = $filter_handler->options['id'];
}
// Build form elements for the right side of the exposed filter form.
$form['expose'] += array(
'autocomplete_filter' => array(
'#type' => 'checkbox',
'#title' => t('Use Autocomplete'),
'#default_value' => $filter_handler->options['expose']['autocomplete_filter'],
'#description' => t('Use Autocomplete for this filter.'),
),
'autocomplete_items' => array(
'#type' => 'textfield',
'#title' => t('Maximum number of items in Autocomplete results'),
'#default_value' => $filter_handler->options['expose']['autocomplete_items'],
'#description' => t('Enter 0 or empty for no limit.'),
'#element_validate' => array(
'element_validate_integer',
),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
'autocomplete_min_chars' => array(
'#type' => 'textfield',
'#title' => t('Minimum number of characters to start filter'),
'#default_value' => $filter_handler->options['expose']['autocomplete_min_chars'],
'#element_validate' => array(
'element_validate_integer',
),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
'autocomplete_dependent' => array(
'#type' => 'checkbox',
'#title' => t('Suggestions depend on other filter fields'),
'#default_value' => $filter_handler->options['expose']['autocomplete_dependent'],
'#description' => t('Autocomplete suggestions will be filtered by other filter fields'),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
'autocomplete_field' => array(
'#type' => 'select',
'#title' => t('Field with autocomplete results'),
'#default_value' => $filter_handler->options['expose']['autocomplete_field'],
'#options' => $field_options,
'#description' => t('Selected field will be used for dropdown results of autocomplete. In most cases it should be the same field you use for filter.'),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
'autocomplete_raw_dropdown' => array(
'#type' => 'checkbox',
'#title' => t('Unformatted dropdown'),
'#default_value' => $filter_handler->options['expose']['autocomplete_raw_dropdown'],
'#description' => t('Use unformatted data from database for dropdown list instead of field formatter result. Value will be printed as plain text.'),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
'autocomplete_raw_suggestion' => array(
'#type' => 'checkbox',
'#title' => t('Unformatted suggestion'),
'#default_value' => $filter_handler->options['expose']['autocomplete_raw_suggestion'],
'#description' => t('The same as above, but for suggestion (text appearing inside textfield when item is selected).'),
'#dependency' => array(
'edit-options-expose-autocomplete-filter' => array(
TRUE,
),
),
),
);
}