YieldToArgumentTrait.php in Lightning Core 8.4
File
src/YieldToArgumentTrait.php
View source
<?php
namespace Drupal\lightning_core;
use Drupal\Core\Form\FormStateInterface;
trait YieldToArgumentTrait {
public function buildExposedForm(&$form, FormStateInterface $form_state) {
parent::buildExposedForm($form, $form_state);
if (empty($this->options['exposed'])) {
return;
}
if (empty($this->options['expose']['argument'])) {
return;
}
$argument = $this->options['expose']['argument'];
$argument = $this->view->argument[$argument];
$value = $argument
->getValue();
$key = $this->options['expose']['identifier'];
$form[$key]['#access'] = is_null($value) || $argument
->isException($value);
}
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.'),
];
foreach ($this->displayHandler
->getHandlers('argument') as $id => $argument) {
$form['expose']['argument']['#options'][$id] = $argument
->adminLabel();
$form['expose']['argument']['#access'] = TRUE;
}
}
protected function defineOptions() {
$options = parent::defineOptions();
$options['expose']['contains']['argument']['default'] = NULL;
return $options;
}
public function defaultExposeOptions() {
parent::defaultExposeOptions();
$this->options['expose']['argument'] = NULL;
}
}