diff --git a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php index 1ce144680262072e4349ed569eb23116b832f884..bc87de8d5ab01933501ded4f78fdf4bd89448800 100644 --- a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php +++ b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php @@ -89,10 +89,14 @@ public function getSortedDefinitions(array $definitions = NULL, $label_key = 'la // Sort the plugins first by category, then by label. $definitions = $definitions ?? $this->getDefinitions(); uasort($definitions, function ($a, $b) use ($label_key) { - if ((string) $a['category'] != (string) $b['category']) { - return strnatcasecmp($a['category'], $b['category']); + $a_category = (string) $a['category'] ?? ''; + $b_category = (string) $b['category'] ?? ''; + if ($a_category != $b_category) { + return strnatcasecmp($a_category, $b_category); } - return strnatcasecmp($a[$label_key], $b[$label_key]); + $a_label = $a[$label_key] ?? ''; + $b_label = $b[$label_key] ?? ''; + return strnatcasecmp($a_label, $b_label); }); return $definitions; }