You are here

protected function WizardPluginBase::setOverrideOptions 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::setOverrideOptions()
  2. 9 core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::setOverrideOptions()

Sets options for a display, inheriting from the defaults when possible.

This function can be used to set options for a display when it is desired that the options inherit from the default display whenever possible. This avoids setting too many options as overrides, which will be harder for the user to modify later. For example, if $this->setDefaultOptions() was previously called on a page display and then this function is called on a block display, and if the user entered the same title for both displays in the views wizard, then the view will wind up with the title stored as the default (with the page and block both inheriting from it).

Parameters

array $options: An array whose keys are the name of each option and whose values are the desired values to set.

\Drupal\views\Plugin\views\display\DisplayPluginBase $display: The display handler which the options will be applied to. The default display will actually be assigned the options (and this display will inherit them) when possible.

\Drupal\views\Plugin\views\display\DisplayPluginBase $default_display: The default display handler, which will store the options when possible.

1 call to WizardPluginBase::setOverrideOptions()
WizardPluginBase::addDisplays in core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
Adds the array of display options to the view, with appropriate overrides.

File

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

Class

WizardPluginBase
Base class for Views wizard plugins.

Namespace

Drupal\views\Plugin\views\wizard

Code

protected function setOverrideOptions(array $options, DisplayPluginBase $display, DisplayPluginBase $default_display) {
  foreach ($options as $option => $value) {

    // Only override the default value if it is different from the value that
    // was provided.
    $default_value = $default_display
      ->getOption($option);
    if (!isset($default_value)) {
      $display
        ->setOption($option, $value);
    }
    elseif ($default_value !== $value) {
      $display
        ->overrideOption($option, $value);
    }
  }
}