function DisplayPluginBase::getPlugin

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/display/DisplayPluginBase.php \Drupal\views\Plugin\views\display\DisplayPluginBase::getPlugin()
  2. 8.9.x core/modules/views/src/Plugin/views/display/DisplayPluginBase.php \Drupal\views\Plugin\views\display\DisplayPluginBase::getPlugin()
  3. 10 core/modules/views/src/Plugin/views/display/DisplayPluginBase.php \Drupal\views\Plugin\views\display\DisplayPluginBase::getPlugin()

Get the instance of a plugin, for example style or row.

Parameters

string $type: The type of the plugin.

Return value

\Drupal\views\Plugin\views\ViewsPluginInterface The plugin instance.

Overrides DisplayPluginInterface::getPlugin

16 calls to DisplayPluginBase::getPlugin()
DisplayPluginBase::access in core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
DisplayPluginBase::applyDisplayCacheabilityMetadata in core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
Applies the cacheability of the current display to the given render array.
DisplayPluginBase::buildOptionsForm in core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
DisplayPluginBase::calculateCacheMetadata in core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
DisplayPluginBase::getAllPlugins in core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
Gets all the plugins used by the display.

... See full list

File

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

Class

DisplayPluginBase
Base class for views display plugins.

Namespace

Drupal\views\Plugin\views\display

Code

public function getPlugin($type) {
  // Look up the plugin name to use for this instance.
  $options = $this->getOption($type);
  // Return now if no options have been loaded.
  if (empty($options) || !isset($options['type'])) {
    return;
  }
  // Query plugins allow specifying a specific query class per base table.
  if ($type == 'query') {
    $views_data = Views::viewsData()->get($this->view->storage
      ->get('base_table'));
    $name = $views_data['table']['base']['query_id'] ?? 'views_query';
  }
  else {
    $name = $options['type'];
  }
  // Plugin instances are stored on the display for re-use.
  if (!isset($this->plugins[$type][$name])) {
    $plugin = Views::pluginManager($type)->createInstance($name);
    // Initialize the plugin.
    $plugin->init($this->view, $this, $options['options']);
    $this->plugins[$type][$name] = $plugin;
  }
  return $this->plugins[$type][$name];
}

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