commit
0b5c3b51b3
3 changed files with 49 additions and 0 deletions
@ -0,0 +1,5 @@ |
|||||||
|
name: 'Roblib Search API Solr Query Alter' |
||||||
|
type: module |
||||||
|
description: 'Implements preQuery event to alter Solr queries for Multisite search.' |
||||||
|
core_version_requirement: '^10' |
||||||
|
package: 'Custom' |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
services: |
||||||
|
Drupal\roblib_solr_query_alter\EventSubscriber\PostConvertedQueryEventSubscriber: |
||||||
|
tags: |
||||||
|
- { name: 'event_subscriber' } |
||||||
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace Drupal\roblib_solr_query_alter\EventSubscriber; |
||||||
|
|
||||||
|
use Drupal\advanced_search\AdvancedSearchQuery; |
||||||
|
use Drupal\search_api_solr\Event\PostConvertedQueryEvent; |
||||||
|
use Drupal\search_api_solr\Event\SearchApiSolrEvents; |
||||||
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Subscribes to PostConvertedQueryEvents. |
||||||
|
* |
||||||
|
* @package Drupal\advanced_search\EventSubscriber |
||||||
|
*/ |
||||||
|
class PostConvertedQueryEventSubscriber implements EventSubscriberInterface { |
||||||
|
|
||||||
|
/** |
||||||
|
* {@inheritdoc} |
||||||
|
*/ |
||||||
|
public static function getSubscribedEvents() { |
||||||
|
$events[SearchAPISolrEvents::POST_CONVERT_QUERY][] = ['alterSolariumQuery']; |
||||||
|
|
||||||
|
return $events; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Alter the query. |
||||||
|
*/ |
||||||
|
public function alterSolariumQuery(PostConvertedQueryEvent $event) { |
||||||
|
//$search_api_query = $event->getSearchApiQuery(); |
||||||
|
$solarium_query = $event->getSolariumQuery(); |
||||||
|
$handler = $solarium_query->getHandler(); |
||||||
|
if($handler == 'select') { |
||||||
|
$solarium_query->getFilterQuery('index_filter') |
||||||
|
->setQuery(''); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue