diff --git a/src/Annotation/FacetsFacetSource.php b/src/Annotation/FacetsFacetSource.php index a43f580..f9ad93d 100644 --- a/src/Annotation/FacetsFacetSource.php +++ b/src/Annotation/FacetsFacetSource.php @@ -41,4 +41,11 @@ class FacetsFacetSource extends Plugin { */ public $description; + /** + * The id of the search api display, if one is used. + * + * @var string + */ + public $display_id; + } diff --git a/src/Plugin/facets/facet_source/SearchApiDisplay.php b/src/Plugin/facets/facet_source/SearchApiDisplay.php index a483157..0cda62b 100644 --- a/src/Plugin/facets/facet_source/SearchApiDisplay.php +++ b/src/Plugin/facets/facet_source/SearchApiDisplay.php @@ -139,9 +139,10 @@ class SearchApiDisplay extends FacetSourcePluginBase { // If there are no results, we can check the Search API Display plugin has // configuration for views. If that configuration exists, we can execute // that view and try to use it's results. - if ($results === NULL && isset($this->getDisplay()->getPluginDefinition()['view_id'])) { - $view = Views::getView($this->getDisplay()->getPluginDefinition()['view_id']); - $view->setDisplay($this->getDisplay()->getPluginDefinition()['view_display']); + $display_definition = $this->getDisplay()->getPluginDefinition(); + if ($results === NULL && isset($display_definition['view_id'])) { + $view = Views::getView($display_definition['view_id']); + $view->setDisplay($display_definition['view_display']); $view->execute(); $results = $this->searchApiQueryHelper->getResults($search_id); } @@ -262,7 +263,7 @@ class SearchApiDisplay extends FacetSourcePluginBase { * * @see hook_facets_search_api_query_type_mapping_alter() */ - public function getQueryTypesForDataType(BackendInterface $backend, $data_type_plugin_id) { + protected function getQueryTypesForDataType(BackendInterface $backend, $data_type_plugin_id) { $query_types = []; $query_types['string'] = 'search_api_string';