public function RadioButtons::exposedFormAlter in Better Exposed Filters 8.5
Same name in this branch
- 8.5 src/Plugin/better_exposed_filters/filter/RadioButtons.php \Drupal\better_exposed_filters\Plugin\better_exposed_filters\filter\RadioButtons::exposedFormAlter()
- 8.5 src/Plugin/better_exposed_filters/sort/RadioButtons.php \Drupal\better_exposed_filters\Plugin\better_exposed_filters\sort\RadioButtons::exposedFormAlter()
- 8.5 src/Plugin/better_exposed_filters/pager/RadioButtons.php \Drupal\better_exposed_filters\Plugin\better_exposed_filters\pager\RadioButtons::exposedFormAlter()
Same name and namespace in other branches
- 8.4 src/Plugin/better_exposed_filters/filter/RadioButtons.php \Drupal\better_exposed_filters\Plugin\better_exposed_filters\filter\RadioButtons::exposedFormAlter()
Manipulate views exposed from element.
Parameters
array $form: The views configuration form.
\Drupal\Core\Form\FormStateInterface $form_state: Form state.
Overrides FilterWidgetBase::exposedFormAlter
File
- src/
Plugin/ better_exposed_filters/ filter/ RadioButtons.php, line 70
Class
- RadioButtons
- Default widget implementation.
Namespace
Drupal\better_exposed_filters\Plugin\better_exposed_filters\filterCode
public function exposedFormAlter(array &$form, FormStateInterface $form_state) {
/** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */
$filter = $this->handler;
// Form element is designated by the element ID which is user-
// configurable.
$field_id = $filter->options['is_grouped'] ? $filter->options['group_info']['identifier'] : $filter->options['expose']['identifier'];
parent::exposedFormAlter($form, $form_state);
if (!empty($form[$field_id])) {
// Clean up filters that pass objects as options instead of strings.
if (!empty($form[$field_id]['#options'])) {
$form[$field_id]['#options'] = BetterExposedFiltersHelper::flattenOptions($form[$field_id]['#options']);
}
// Support rendering hierarchical checkboxes/radio buttons (e.g. taxonomy
// terms).
if (!empty($filter->options['hierarchy'])) {
$form[$field_id]['#bef_nested'] = TRUE;
}
// Display inline.
$form[$field_id]['#bef_display_inline'] = $this->configuration['display_inline'];
// Render as checkboxes if filter allows multiple selections.
if (!empty($form[$field_id]['#multiple'])) {
$form[$field_id]['#theme'] = 'bef_checkboxes';
$form[$field_id]['#type'] = 'checkboxes';
// Show all/none option.
$form[$field_id]['#bef_select_all_none'] = $this->configuration['select_all_none'];
$form[$field_id]['#bef_select_all_none_nested'] = $this->configuration['select_all_none_nested'];
// Attach the JS (@see /js/bef_select_all_none.js)
$form['#attached']['library'][] = 'better_exposed_filters/select_all_none';
}
else {
$form[$field_id]['#theme'] = 'bef_radios';
$form[$field_id]['#type'] = 'radios';
}
}
}