DisplayExtenderTest.php

Same filename in this branch
  1. 8.9.x core/modules/views/tests/src/Kernel/Plugin/DisplayExtenderTest.php
Same filename in other branches
  1. 9 core/modules/views/tests/src/Kernel/Plugin/DisplayExtenderTest.php
  2. 9 core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
  3. 10 core/modules/views/tests/src/Kernel/Plugin/DisplayExtenderTest.php
  4. 10 core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
  5. 11.x core/modules/views/tests/src/Kernel/Plugin/DisplayExtenderTest.php
  6. 11.x core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php

Namespace

Drupal\views_test_data\Plugin\views\display_extender

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;

/**
 * Defines a display extender test plugin.
 *
 * @ViewsDisplayExtender(
 *   id = "display_extender_test",
 *   title = @Translation("Display extender test")
 * )
 */
class DisplayExtenderTest extends DisplayExtenderPluginBase {
    
    /**
     * Stores some state booleans to be sure a certain method got called.
     *
     * @var array
     */
    public $testState;
    
    /**
     * {@inheritdoc}
     */
    protected function defineOptions() {
        $options = parent::defineOptions();
        $options['test_extender_test_option'] = [
            'default' => $this->t('Empty'),
        ];
        return $options;
    }
    
    /**
     * {@inheritdoc}
     */
    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),
        ];
    }
    
    /**
     * {@inheritdoc}
     */
    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'],
                ];
        }
    }
    
    /**
     * {@inheritdoc}
     */
    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;
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function defaultableSections(&$sections, $section = NULL) {
        $sections['test_extender_test_option'] = [
            'test_extender_test_option',
        ];
    }
    
    /**
     * {@inheritdoc}
     */
    public function query() {
        $this->testState['query'] = TRUE;
    }
    
    /**
     * {@inheritdoc}
     */
    public function preExecute() {
        $this->testState['preExecute'] = TRUE;
    }

}

Classes

Title Deprecated Summary
DisplayExtenderTest Defines a display extender test plugin.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.