From 9a4252bb3d0862a7c9d1a04e538e7fe8f207b23f Mon Sep 17 00:00:00 2001 From: Scott Sawyer Date: Wed, 3 Nov 2021 01:51:56 -0400 Subject: [PATCH] added support for all entities with bundles --- src/FacetsHardcodeSlugHelper.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/FacetsHardcodeSlugHelper.php b/src/FacetsHardcodeSlugHelper.php index 1b544cb..01cae89 100644 --- a/src/FacetsHardcodeSlugHelper.php +++ b/src/FacetsHardcodeSlugHelper.php @@ -6,6 +6,7 @@ use Drupal\facets\FacetInterface; class FacetsHardcodeSlugHelper { + /** * @param $filterKey * @return FacetInterface|null @@ -73,14 +74,22 @@ public static function getValueFromSlug($filterKey, $slug) { if (!empty($entity_type) && !empty($slug) && !empty($bundle)) { $slugField = $config->get('slug_field'); - $results = \Drupal::entityTypeManager()->getStorage($entity_type)->loadByProperties([ - $slugField => $slug, - 'vid' => $bundle, - ]); + $definition = \Drupal::entityTypeManager()->getDefinition($entity_type); + + if ($definition) { + $bundle_key = $definition->getKey('bundle') ?? 'bundle'; + + $results = \Drupal::entityTypeManager() + ->getStorage($entity_type) + ->loadByProperties([ + $slugField => $slug, + $bundle_key => $bundle, + ]); - if (!empty($results)) { - $keys = array_keys($results); - $value = array_shift($keys); + if (!empty($results)) { + $keys = array_keys($results); + $value = array_shift($keys); + } } }