You are here

public function NumericFilter::buildExposeForm in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/filter/NumericFilter.php \Drupal\views\Plugin\views\filter\NumericFilter::buildExposeForm()

Options form subform for exposed filter options.

Overrides FilterPluginBase::buildExposeForm

See also

buildOptionsForm()

File

core/modules/views/src/Plugin/views/filter/NumericFilter.php, line 49

Class

NumericFilter
Simple filter to handle greater than/less than filters.

Namespace

Drupal\views\Plugin\views\filter

Code

public function buildExposeForm(&$form, FormStateInterface $form_state) {
  parent::buildExposeForm($form, $form_state);
  $form['expose']['min_placeholder'] = [
    '#type' => 'textfield',
    '#default_value' => $this->options['expose']['min_placeholder'],
    '#title' => $this
      ->t('Min placeholder'),
    '#size' => 40,
    '#description' => $this
      ->t('Hint text that appears inside the Min field when empty.'),
  ];
  $form['expose']['max_placeholder'] = [
    '#type' => 'textfield',
    '#default_value' => $this->options['expose']['max_placeholder'],
    '#title' => $this
      ->t('Max placeholder'),
    '#size' => 40,
    '#description' => $this
      ->t('Hint text that appears inside the Max field when empty.'),
  ];

  // Setup #states for all operators with two value.
  $states = [
    [
      ':input[name="options[expose][use_operator]"]' => [
        'checked' => TRUE,
      ],
    ],
  ];
  foreach ($this
    ->operatorValues(2) as $operator) {
    $states[] = [
      ':input[name="options[operator]"]' => [
        'value' => $operator,
      ],
    ];
  }
  $form['expose']['min_placeholder']['#states']['visible'] = $states;
  $form['expose']['max_placeholder']['#states']['visible'] = $states;
  $form['expose']['placeholder'] = [
    '#type' => 'textfield',
    '#default_value' => $this->options['expose']['placeholder'],
    '#title' => $this
      ->t('Placeholder'),
    '#size' => 40,
    '#description' => $this
      ->t('Hint text that appears inside the field when empty.'),
  ];

  // Setup #states for all operators with one value.
  $form['expose']['placeholder']['#states']['visible'] = [
    [
      ':input[name="options[expose][use_operator]"]' => [
        'checked' => TRUE,
      ],
    ],
  ];
  foreach ($this
    ->operatorValues(1) as $operator) {
    $form['expose']['placeholder']['#states']['visible'][] = [
      ':input[name="options[operator]"]' => [
        'value' => $operator,
      ],
    ];
  }
}