You are here

public function CategorizingPluginManagerTrait::getSortedDefinitions in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php \Drupal\Core\Plugin\CategorizingPluginManagerTrait::getSortedDefinitions()
  2. 10 core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php \Drupal\Core\Plugin\CategorizingPluginManagerTrait::getSortedDefinitions()
2 calls to CategorizingPluginManagerTrait::getSortedDefinitions()
BlockManager::getSortedDefinitions in core/lib/Drupal/Core/Block/BlockManager.php
Gets sorted plugin definitions.
CategorizingPluginManagerTrait::getGroupedDefinitions in core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php

File

core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php, line 89

Class

CategorizingPluginManagerTrait
Provides a trait for the CategorizingPluginManagerInterface.

Namespace

Drupal\Core\Plugin

Code

public function getSortedDefinitions(array $definitions = NULL, $label_key = 'label') {

  // Sort the plugins first by category, then by label.

  /** @var \Drupal\Core\Plugin\CategorizingPluginManagerTrait|\Drupal\Component\Plugin\PluginManagerInterface $this */
  $definitions = isset($definitions) ? $definitions : $this
    ->getDefinitions();
  uasort($definitions, function ($a, $b) use ($label_key) {
    if ($a['category'] != $b['category']) {
      return strnatcasecmp($a['category'], $b['category']);
    }
    return strnatcasecmp($a[$label_key], $b[$label_key]);
  });
  return $definitions;
}