You are here

protected function WizardPluginBase::pageDisplayOptions in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::pageDisplayOptions()
  2. 9 core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::pageDisplayOptions()

Retrieves the page display options.

Parameters

array $form: The full wizard form array.

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

Return value

array Returns an array of display options.

2 calls to WizardPluginBase::pageDisplayOptions()
Node::pageDisplayOptions in core/modules/node/src/Plugin/views/wizard/Node.php
Retrieves the page display options.
WizardPluginBase::buildDisplayOptions in core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
Builds an array of display options for the view.
1 method overrides WizardPluginBase::pageDisplayOptions()
Node::pageDisplayOptions in core/modules/node/src/Plugin/views/wizard/Node.php
Retrieves the page display options.

File

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

Class

WizardPluginBase
Base class for Views wizard plugins.

Namespace

Drupal\views\Plugin\views\wizard

Code

protected function pageDisplayOptions(array $form, FormStateInterface $form_state) {
  $display_options = [];
  $page = $form_state
    ->getValue('page');
  $display_options['title'] = $page['title'];
  $display_options['path'] = $page['path'];
  $display_options['style'] = [
    'type' => $page['style']['style_plugin'],
  ];

  // Not every style plugin supports row style plugins.
  // Make sure that the selected row plugin is a valid one.
  $options = $this
    ->rowStyleOptions();
  $display_options['row'] = [
    'type' => isset($page['style']['row_plugin']) && isset($options[$page['style']['row_plugin']]) ? $page['style']['row_plugin'] : 'fields',
  ];

  // If the specific 0 items per page, use no pager.
  if (empty($page['items_per_page'])) {
    $display_options['pager']['type'] = 'none';
  }
  elseif (!empty($page['pager'])) {
    $display_options['pager']['type'] = 'mini';
  }
  else {
    $display_options['pager']['type'] = 'some';
  }
  $display_options['pager']['options']['items_per_page'] = $page['items_per_page'];

  // Generate the menu links settings if the user checked the link checkbox.
  if (!empty($page['link'])) {
    $display_options['menu']['type'] = 'normal';
    $display_options['menu']['title'] = $page['link_properties']['title'];
    [
      $display_options['menu']['menu_name'],
      $display_options['menu']['parent'],
    ] = explode(':', $page['link_properties']['parent'], 2);
  }
  return $display_options;
}