You are here

public function FilteredPluginManagerTrait::getFilteredDefinitions in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Plugin/FilteredPluginManagerTrait.php \Drupal\Core\Plugin\FilteredPluginManagerTrait::getFilteredDefinitions()

Implements \Drupal\Core\Plugin\FilteredPluginManagerInterface::getFilteredDefinitions().

File

core/lib/Drupal/Core/Plugin/FilteredPluginManagerTrait.php, line 19

Class

FilteredPluginManagerTrait
Provides a trait for plugin managers that allow filtering plugin definitions.

Namespace

Drupal\Core\Plugin

Code

public function getFilteredDefinitions($consumer, $contexts = NULL, array $extra = []) {
  if (!is_null($contexts)) {
    $definitions = $this
      ->getDefinitionsForContexts($contexts);
  }
  else {
    $definitions = $this
      ->getDefinitions();
  }
  $type = $this
    ->getType();
  $hooks = [];
  $hooks[] = "plugin_filter_{$type}";
  $hooks[] = "plugin_filter_{$type}__{$consumer}";
  $this
    ->moduleHandler()
    ->alter($hooks, $definitions, $extra, $consumer);
  $this
    ->themeManager()
    ->alter($hooks, $definitions, $extra, $consumer);
  return $definitions;
}