You are here

public function ContextHandler::filterPluginDefinitionsByContexts in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Plugin/Context/ContextHandler.php \Drupal\Core\Plugin\Context\ContextHandler::filterPluginDefinitionsByContexts()

Determines plugins whose constraints are satisfied by a set of contexts.

@todo Use context definition objects after https://www.drupal.org/node/2281635.

Parameters

\Drupal\Component\Plugin\Context\ContextInterface[] $contexts: An array of contexts.

array $definitions .: An array of plugin definitions.

Return value

array An array of plugin definitions.

Overrides ContextHandlerInterface::filterPluginDefinitionsByContexts

File

core/lib/Drupal/Core/Plugin/Context/ContextHandler.php, line 22
Contains \Drupal\Core\Plugin\Context\ContextHandler.

Class

ContextHandler
Provides methods to handle sets of contexts.

Namespace

Drupal\Core\Plugin\Context

Code

public function filterPluginDefinitionsByContexts(array $contexts, array $definitions) {
  return array_filter($definitions, function ($plugin_definition) use ($contexts) {

    // If this plugin doesn't need any context, it is available to use.
    if (!isset($plugin_definition['context'])) {
      return TRUE;
    }

    // Check the set of contexts against the requirements.
    return $this
      ->checkRequirements($contexts, $plugin_definition['context']);
  });
}