class EventListener in Search API 8
Same name in this branch
- 8 tests/search_api_test_events/src/EventListener.php \Drupal\search_api_test_events\EventListener
- 8 tests/search_api_test_db/src/EventListener.php \Drupal\search_api_test_db\EventListener
Provides an event listener for testing purposes.
Hierarchy
- class \Drupal\search_api_test_events\EventListener implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of EventListener
See also
\Drupal\Tests\search_api\Functional\EventsTest
1 string reference to 'EventListener'
- search_api_test_events.services.yml in tests/
search_api_test_events/ search_api_test_events.services.yml - tests/search_api_test_events/search_api_test_events.services.yml
1 service uses EventListener
- search_api_test_events.event_listener in tests/
search_api_test_events/ search_api_test_events.services.yml - Drupal\search_api_test_events\EventListener
File
- tests/
search_api_test_events/ src/ EventListener.php, line 23
Namespace
Drupal\search_api_test_eventsView source
class EventListener implements EventSubscriberInterface {
/**
* The messenger.
*
* @var \Drupal\Core\Messenger\MessengerInterface
*/
protected $messenger;
/**
* Constructs a new class instance.
*
* @param \Drupal\Core\Messenger\MessengerInterface $messenger
* The messenger.
*/
public function __construct(MessengerInterface $messenger) {
$this->messenger = $messenger;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return [
SearchApiEvents::DETERMINING_SERVER_FEATURES => 'serverFeaturesAlter',
SearchApiEvents::GATHERING_BACKENDS => 'backendInfoAlter',
SearchApiEvents::GATHERING_DATA_SOURCES => 'dataSourceInfoAlter',
SearchApiEvents::GATHERING_DATA_TYPES => 'dataTypeInfoAlter',
SearchApiEvents::GATHERING_DISPLAYS => 'displaysAlter',
SearchApiEvents::MAPPING_FIELD_TYPES => 'fieldTypeMappingAlter',
SearchApiEvents::INDEXING_ITEMS => 'indexingItems',
SearchApiEvents::ITEMS_INDEXED => 'itemsIndexed',
SearchApiEvents::GATHERING_PARSE_MODES => 'parseModeInfoAlter',
SearchApiEvents::GATHERING_PROCESSORS => 'processorInfoAlter',
SearchApiEvents::QUERY_PRE_EXECUTE => 'queryAlter',
SearchApiEvents::QUERY_PRE_EXECUTE . '.andrew_hill' => 'queryTagAlter',
SearchApiEvents::REINDEX_SCHEDULED => 'reindex',
SearchApiEvents::PROCESSING_RESULTS => 'resultsAlter',
SearchApiEvents::PROCESSING_RESULTS . '.andrew_hill' => 'resultsTagAlter',
SearchApiEvents::GATHERING_TRACKERS => 'trackerInfoAlter',
];
}
/**
* Reacts to the backend info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The backend info alter event.
*/
public function backendInfoAlter(GatheringPluginInfoEvent $event) {
$backend_info =& $event
->getDefinitions();
$backend_info['search_api_test']['label'] = 'Slims return';
}
/**
* Reacts to the data type info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The data type info alter event.
*/
public function dataTypeInfoAlter(GatheringPluginInfoEvent $event) {
$dataTypePluginInfo =& $event
->getDefinitions();
if (isset($dataTypePluginInfo['text'])) {
$dataTypePluginInfo['text']['label'] = 'Peace/Dolphin dance';
}
}
/**
* Reacts to the data source info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The data source info alter event.
*/
public function dataSourceInfoAlter(GatheringPluginInfoEvent $event) {
$infos =& $event
->getDefinitions();
if (isset($infos['entity:node'])) {
$infos['entity:node']['label'] = 'Distant land';
}
}
/**
* Reacts to the displays alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The displays alter event.
*/
public function displaysAlter(GatheringPluginInfoEvent $event) {
$displays =& $event
->getDefinitions();
if (isset($displays['views_page:search_api_test_view__page_1'])) {
$displays['views_page:search_api_test_view__page_1']['label'] = 'Some funny label for testing';
}
}
/**
* Reacts to the field type mapping alter event.
*
* @param \Drupal\search_api\Event\MappingFieldTypesEvent $event
* The field type mapping alter event.
*/
public function fieldTypeMappingAlter(MappingFieldTypesEvent $event) {
$mapping =& $event
->getFieldTypeMapping();
$mapping['datetime_iso8601'] = FALSE;
$mapping['timestamp'] = FALSE;
}
/**
* Reacts to the indexing items event.
*
* @param \Drupal\search_api\Event\IndexingItemsEvent $event
* The indexing items event.
*/
public function indexingItems(IndexingItemsEvent $event) {
$items = $event
->getItems();
unset($items['entity:node/1:en']);
$event
->setItems($items);
$this->messenger
->addStatus('Stormy');
}
/**
* Reacts to the items indexed event.
*
* @param \Drupal\search_api\Event\ItemsIndexedEvent $event
* The items indexed event.
*/
public function itemsIndexed(ItemsIndexedEvent $event) {
$this->messenger
->addStatus('Please set me at ease');
}
/**
* Reacts to the parse mode info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The parse mode plugin info alter event.
*/
public function parseModeInfoAlter(GatheringPluginInfoEvent $event) {
$parseModeInfo =& $event
->getDefinitions();
if (isset($parseModeInfo['direct'])) {
$parseModeInfo['direct']['label'] = 'Song for My Father';
}
}
/**
* Reacts to the processor info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The processor plugin info alter event.
*/
public function processorInfoAlter(GatheringPluginInfoEvent $event) {
$processorInfo =& $event
->getDefinitions();
$processorInfo['content_access']['label'] = 'Mystic bounce';
}
/**
* Reacts to the query alter event.
*
* @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
* The query alter event.
*/
public function queryAlter(QueryPreExecuteEvent $event) {
$query = $event
->getQuery();
$this->messenger
->addStatus('Funky blue note');
$this->messenger
->addStatus("Search id: {$query->getSearchId(FALSE)}");
$query
->addTag('andrew_hill');
}
/**
* Reacts to the query TAG alter event.
*
* @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
* The query alter event.
*/
public function queryTagAlter(QueryPreExecuteEvent $event) {
$this->messenger
->addStatus("Freeland");
$query = $event
->getQuery();
// Exclude the node with ID 2 from the search results.
$query
->setOption('tag query alter hook', TRUE);
$index = $query
->getIndex();
$fields = $index
->getFields();
foreach ($index
->getDatasources() as $datasource_id => $datasource) {
if ($datasource
->getEntityTypeId() === 'node') {
$field = Utility::createCombinedId($datasource_id, 'nid');
if (isset($fields[$field])) {
$query
->addCondition($field, 2, '<>');
}
}
}
}
/**
* Reacts to the reindex event.
*
* @param \Drupal\search_api\Event\ReindexScheduledEvent $event
* The reindex index event.
*/
public function reindex(ReindexScheduledEvent $event) {
$this->messenger
->addStatus('Montara');
}
/**
* Reacts to the results alter event.
*
* @param \Drupal\search_api\Event\ProcessingResultsEvent $event
* The results alter event.
*/
public function resultsAlter(ProcessingResultsEvent $event) {
$this->messenger
->addStatus('Stepping into tomorrow');
}
/**
* Reacts to the results TAG alter event.
*
* @param \Drupal\search_api\Event\ProcessingResultsEvent $event
* The results alter event.
*/
public function resultsTagAlter(ProcessingResultsEvent $event) {
$this->messenger
->addStatus('Llama');
}
/**
* Reacts to the server features alter event.
*
* @param \Drupal\search_api\Event\DeterminingServerFeaturesEvent $event
* The server features alter event.
*/
public function serverFeaturesAlter(DeterminingServerFeaturesEvent $event) {
$features =& $event
->getFeatures();
$server = $event
->getServer();
if ($server
->id() === 'webtest_server') {
$features[] = 'welcome_to_the_jungle';
}
}
/**
* Reacts to the tracker info alter event.
*
* @param \Drupal\search_api\Event\GatheringPluginInfoEvent $event
* The tracker plugin info alter event.
*/
public function trackerInfoAlter(GatheringPluginInfoEvent $event) {
$trackerInfo =& $event
->getDefinitions();
$trackerInfo['search_api_test']['label'] = 'Good luck';
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EventListener:: |
protected | property | The messenger. | |
EventListener:: |
public | function | Reacts to the backend info alter event. | |
EventListener:: |
public | function | Reacts to the data source info alter event. | |
EventListener:: |
public | function | Reacts to the data type info alter event. | |
EventListener:: |
public | function | Reacts to the displays alter event. | |
EventListener:: |
public | function | Reacts to the field type mapping alter event. | |
EventListener:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | |
EventListener:: |
public | function | Reacts to the indexing items event. | |
EventListener:: |
public | function | Reacts to the items indexed event. | |
EventListener:: |
public | function | Reacts to the parse mode info alter event. | |
EventListener:: |
public | function | Reacts to the processor info alter event. | |
EventListener:: |
public | function | Reacts to the query alter event. | |
EventListener:: |
public | function | Reacts to the query TAG alter event. | |
EventListener:: |
public | function | Reacts to the reindex event. | |
EventListener:: |
public | function | Reacts to the results alter event. | |
EventListener:: |
public | function | Reacts to the results TAG alter event. | |
EventListener:: |
public | function | Reacts to the server features alter event. | |
EventListener:: |
public | function | Reacts to the tracker info alter event. | |
EventListener:: |
public | function | Constructs a new class instance. |