diff --git a/core/modules/search/lib/Drupal/search/SearchPluginManager.php b/core/modules/search/lib/Drupal/search/SearchPluginManager.php index 3802447..25cd7ba 100644 --- a/core/modules/search/lib/Drupal/search/SearchPluginManager.php +++ b/core/modules/search/lib/Drupal/search/SearchPluginManager.php @@ -54,8 +54,10 @@ public function processDefinition(&$definition, $plugin_id) { * An array of active search plugin definitions. */ public function getActiveDefinitions() { - $search_info = $this->getDefinitions(); - return $this->filterByActiveModules($search_info); + $active = $this->configFactory->get('search.settings')->get('active_modules'); + return array_filter($this->getDefinitions(), function ($definition) use ($active) { + return in_array($definition['provider'], $active); + }); } /** @@ -81,20 +83,7 @@ public function getDefinitionsByModule() { */ public function getActiveDefinitionsByModule() { $search_info = $this->getDefinitionsByModule(); - return $this->filterByActiveModules($search_info); - } - - /** - * Filters for active search plugin definitions. - * - * @param array $definitions - * An array of search plugin definitions. - * - * @return array - * An array of search plugins definitions filtered for active modules. - */ - protected function filterByActiveModules(array $definitions) { - return array_intersect_key($definitions, array_flip($this->configFactory->get('search.settings')->get('active_modules'))); + return array_intersect_key($search_info, array_flip($this->configFactory->get('search.settings')->get('active_modules'))); } }