protected function FilterPluginBase::exposedTranslate

Make some translations to a form item to make it more suitable to exposing.

1 call to FilterPluginBase::exposedTranslate()
FilterPluginBase::buildExposedForm in drupal/core/modules/views/lib/Drupal/views/Plugin/views/filter/FilterPluginBase.php
Render our chunk of the exposed filter form when selecting

File

drupal/core/modules/views/lib/Drupal/views/Plugin/views/filter/FilterPluginBase.php, line 1109
Definition of Drupal\views\Plugin\views\filter\FilterPluginBase.

Class

FilterPluginBase
Base class for filters.

Namespace

Drupal\views\Plugin\views\filter

Code

protected function exposedTranslate(&$form, $type) {
  if (!isset($form['#type'])) {
    return;
  }
  if ($form['#type'] == 'radios') {
    $form['#type'] = 'select';
  }

  // Checkboxes don't work so well in exposed forms due to GET conversions.
  if ($form['#type'] == 'checkboxes') {
    if (empty($form['#no_convert']) || empty($this->options['expose']['multiple'])) {
      $form['#type'] = 'select';
    }
    if (!empty($this->options['expose']['multiple'])) {
      $form['#multiple'] = TRUE;
    }
  }
  if (empty($this->options['expose']['multiple']) && isset($form['#multiple'])) {
    unset($form['#multiple']);
    $form['#size'] = NULL;
  }

  // Cleanup in case the translated element's (radios or checkboxes) display value contains html.
  if ($form['#type'] == 'select') {
    $this
      ->prepareFilterSelectOptions($form['#options']);
  }
  if ($type == 'value' && empty($this->always_required) && empty($this->options['expose']['required']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
    $any_label = config('views.settings')
      ->get('ui.exposed_filter_any_label') == 'old_any' ? t('<Any>') : t('- Any -');
    $form['#options'] = array(
      'All' => $any_label,
    ) + $form['#options'];
    $form['#default_value'] = 'All';
  }
  if (!empty($this->options['expose']['required'])) {
    $form['#required'] = TRUE;
  }
}