You are here

public function YieldToArgumentTrait::buildExposeForm in Lightning Core 8

Same name and namespace in other branches
  1. 8.5 src/YieldToArgumentTrait.php \Drupal\lightning_core\YieldToArgumentTrait::buildExposeForm()
  2. 8.2 src/YieldToArgumentTrait.php \Drupal\lightning_core\YieldToArgumentTrait::buildExposeForm()
  3. 8.3 src/YieldToArgumentTrait.php \Drupal\lightning_core\YieldToArgumentTrait::buildExposeForm()
  4. 8.4 src/YieldToArgumentTrait.php \Drupal\lightning_core\YieldToArgumentTrait::buildExposeForm()

File

src/YieldToArgumentTrait.php, line 37

Class

YieldToArgumentTrait
Allows exposed an Views filter to disappear if an argument is present.

Namespace

Drupal\lightning_core

Code

public function buildExposeForm(&$form, FormStateInterface $form_state) {
  parent::buildExposeForm($form, $form_state);
  $form['expose']['argument'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Yield to argument'),
    '#options' => [],
    '#empty_option' => $this
      ->t('- None -'),
    '#default_value' => $this->options['expose']['argument'],
    '#description' => $this
      ->t('If this argument has a non-null value (given or default), this filter will not be exposed to the user.'),
  ];

  /**
   * @var string $id
   * @var \Drupal\views\Plugin\views\argument\ArgumentPluginBase $argument
   */
  foreach ($this->displayHandler
    ->getHandlers('argument') as $id => $argument) {
    $form['expose']['argument']['#options'][$id] = $argument
      ->adminLabel();
    $form['expose']['argument']['#access'] = TRUE;
  }
}