function WizardPluginBase::buildFormStyle

Same name in other branches
  1. 8.9.x core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildFormStyle()
  2. 10 core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildFormStyle()
  3. 11.x core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildFormStyle()

Adds the style options to the wizard form.

Parameters

array $form: The full wizard form array.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the wizard form.

string $type: The display ID (e.g. 'page' or 'block').

1 call to WizardPluginBase::buildFormStyle()
WizardPluginBase::buildForm in core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
Form callback to build other elements in the "show" form.

File

core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php, line 576

Class

WizardPluginBase
Base class for Views wizard plugins.

Namespace

Drupal\views\Plugin\views\wizard

Code

protected function buildFormStyle(array &$form, FormStateInterface $form_state, $type) {
    $style_form =& $form['displays'][$type]['options']['style'];
    $style = $style_form['style_plugin']['#default_value'];
    $style_plugin = Views::pluginManager('style')->createInstance($style);
    if (isset($style_plugin) && $style_plugin->usesRowPlugin()) {
        $options = $this->rowStyleOptions();
        $style_form['row_plugin'] = [
            '#type' => 'select',
            '#title' => $this->t('of'),
            '#options' => $options,
            '#access' => count($options) > 1,
        ];
        // For the block display, the default value should be "titles (linked)",
        // if it's available (since that's the most common use case).
        $block_with_linked_titles_available = $type == 'block' && isset($options['titles_linked']);
        $default_value = $block_with_linked_titles_available ? 'titles_linked' : key($options);
        $style_form['row_plugin']['#default_value'] = static::getSelected($form_state, [
            $type,
            'style',
            'row_plugin',
        ], $default_value, $style_form['row_plugin']);
        // Changing this dropdown updates the individual row options via AJAX.
        views_ui_add_ajax_trigger($style_form, 'row_plugin', [
            'displays',
            $type,
            'options',
            'style',
            'row_options',
        ]);
        // This is the region that can be updated by AJAX. The base class doesn't
        // add anything here, but child classes can.
        $style_form['row_options'] = [
            '#theme_wrappers' => [
                'container',
            ],
        ];
    }
    elseif ($style_plugin->usesFields()) {
        $style_form['row_plugin'] = [
            '#markup' => '<span>' . $this->t('of fields') . '</span>',
        ];
    }
}

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