You are here

public function DisplayPluginBase::mergeDefaults in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/display/DisplayPluginBase.php \Drupal\views\Plugin\views\display\DisplayPluginBase::mergeDefaults()

Merges default values for all plugin types.

Overrides DisplayPluginInterface::mergeDefaults

File

core/modules/views/src/Plugin/views/display/DisplayPluginBase.php, line 2672

Class

DisplayPluginBase
Base class for views display plugins.

Namespace

Drupal\views\Plugin\views\display

Code

public function mergeDefaults() {
  $defined_options = $this
    ->defineOptions();

  // Build a map of plural => singular for handler types.
  $type_map = [];
  foreach (ViewExecutable::getHandlerTypes() as $type => $info) {
    $type_map[$info['plural']] = $type;
  }

  // Find all defined options, that have specified a merge_defaults callback.
  foreach ($defined_options as $type => $definition) {
    if (!isset($definition['merge_defaults']) || !is_callable($definition['merge_defaults'])) {
      continue;
    }

    // Switch the type to singular, if it's a plural handler.
    if (isset($type_map[$type])) {
      $type = $type_map[$type];
    }
    call_user_func($definition['merge_defaults'], $type);
  }
}