function Time::buildOptionsForm

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/cache/Time.php \Drupal\views\Plugin\views\cache\Time::buildOptionsForm()
  2. 8.9.x core/modules/views/src/Plugin/views/cache/Time.php \Drupal\views\Plugin\views\cache\Time::buildOptionsForm()
  3. 11.x core/modules/views/src/Plugin/views/cache/Time.php \Drupal\views\Plugin\views\cache\Time::buildOptionsForm()

Overrides PluginBase::buildOptionsForm

File

core/modules/views/src/Plugin/views/cache/Time.php, line 82

Class

Time
Simple caching of query results for Views displays.

Namespace

Drupal\views\Plugin\views\cache

Code

public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $options = [
        60,
        300,
        1800,
        3600,
        21600,
        518400,
    ];
    $options = array_map([
        $this->dateFormatter,
        'formatInterval',
    ], array_combine($options, $options));
    $options = [
        0 => $this->t('Never cache'),
    ] + $options + [
        'custom' => $this->t('Custom'),
    ];
    $form['results_lifespan'] = [
        '#type' => 'select',
        '#title' => $this->t('Query results'),
        '#description' => $this->t('The length of time raw query results should be cached.'),
        '#options' => $options,
        '#default_value' => $this->options['results_lifespan'],
    ];
    $form['results_lifespan_custom'] = [
        '#type' => 'textfield',
        '#title' => $this->t('Seconds'),
        '#size' => '25',
        '#maxlength' => '30',
        '#description' => $this->t('Length of time in seconds raw query results should be cached.'),
        '#default_value' => $this->options['results_lifespan_custom'],
        '#states' => [
            'visible' => [
                ':input[name="cache_options[results_lifespan]"]' => [
                    'value' => 'custom',
                ],
            ],
        ],
    ];
    $form['output_lifespan'] = [
        '#type' => 'select',
        '#title' => $this->t('Rendered output'),
        '#description' => $this->t('The length of time rendered HTML output should be cached.'),
        '#options' => $options,
        '#default_value' => $this->options['output_lifespan'],
    ];
    $form['output_lifespan_custom'] = [
        '#type' => 'textfield',
        '#title' => $this->t('Seconds'),
        '#size' => '25',
        '#maxlength' => '30',
        '#description' => $this->t('Length of time in seconds rendered HTML output should be cached.'),
        '#default_value' => $this->options['output_lifespan_custom'],
        '#states' => [
            'visible' => [
                ':input[name="cache_options[output_lifespan]"]' => [
                    'value' => 'custom',
                ],
            ],
        ],
    ];
}

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