DisplayExtenderTest.php in Drupal 10
File
core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
View source
<?php
namespace Drupal\views_test_data\Plugin\views\display_extender;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Plugin\views\display_extender\DisplayExtenderPluginBase;
class DisplayExtenderTest extends DisplayExtenderPluginBase {
public $testState;
protected function defineOptions() {
$options = parent::defineOptions();
$options['test_extender_test_option'] = [
'default' => $this
->t('Empty'),
];
return $options;
}
public function optionsSummary(&$categories, &$options) {
parent::optionsSummary($categories, $options);
$categories['display_extender_test'] = [
'title' => $this
->t('Display extender test settings'),
'column' => 'second',
'build' => [
'#weight' => -100,
],
];
$options['test_extender_test_option'] = [
'category' => 'display_extender_test',
'title' => $this
->t('Test option'),
'value' => views_ui_truncate($this->options['test_extender_test_option'], 24),
];
}
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
switch ($form_state
->get('section')) {
case 'test_extender_test_option':
$form['#title'] .= $this
->t('Test option');
$form['test_extender_test_option'] = [
'#title' => $this
->t('Test option'),
'#type' => 'textfield',
'#description' => $this
->t('This is a textfield for test_option.'),
'#default_value' => $this->options['test_extender_test_option'],
];
}
}
public function submitOptionsForm(&$form, FormStateInterface $form_state) {
parent::submitOptionsForm($form, $form_state);
switch ($form_state
->get('section')) {
case 'test_extender_test_option':
$this->options['test_extender_test_option'] = $form_state
->getValue('test_extender_test_option');
break;
}
}
public function defaultableSections(&$sections, $section = NULL) {
$sections['test_extender_test_option'] = [
'test_extender_test_option',
];
}
public function query() {
$this->testState['query'] = TRUE;
}
public function preExecute() {
$this->testState['preExecute'] = TRUE;
}
}