diff --git a/facets.module b/facets.module index 5c322cf..8a7ac4f 100644 --- a/facets.module +++ b/facets.module @@ -59,10 +59,18 @@ function facets_search_api_query_alter(QueryInterface &$query) { /** @var \Drupal\facets\FacetManager\DefaultFacetManager $facet_manager */ $facet_manager = \Drupal::service('facets.manager'); - $search_id = $query->getSearchId(); + /** @var \Drupal\facets\FacetSource\FacetSourcePluginManager $facet_source_manager */ + $facet_source_manager = \Drupal::service('plugin.manager.facets.facet_source'); + + $facet_source_id = $query->getSearchId(FALSE); + foreach ($facet_source_manager->getDefinitions() as $definition) { + if ($definition['display_id'] == $query->getSearchId()) { + $facet_source_id = $definition['id']; + } + } // Add the active filters. - $facet_manager->alterQuery($query, $search_id); + $facet_manager->alterQuery($query, $facet_source_id); } } diff --git a/src/Plugin/facets/url_processor/QueryString.php b/src/Plugin/facets/url_processor/QueryString.php index bfd828a..ab3fe67 100644 --- a/src/Plugin/facets/url_processor/QueryString.php +++ b/src/Plugin/facets/url_processor/QueryString.php @@ -68,11 +68,12 @@ class QueryString extends UrlProcessorPluginBase { // Set the url alias from the the facet object. $this->urlAlias = $facet->getUrlAlias(); - $request = $this->request; if ($facet->getFacetSource()->getPath()) { - $request = Request::create($facet->getFacetSource()->getPath()); + $url = Url::fromUserInput($facet->getFacetSource()->getPath()); + } + else { + $url = Url::createFromRequest($this->request); } - $url = Url::createFromRequest($request); $url->setOption('attributes', ['rel' => 'nofollow']); /** @var \Drupal\facets\Result\ResultInterface[] $results */