BeforeSearchInDatabaseRecordProviderEvent
New in version 12.1
The TYPO3 backend search (also known as "Live Search") uses the
\TYPO3\
to search
for records in database tables, having search
configured in TCA.
In some individual cases it may not be desirable to search in a specific table.
Therefore, the PSR-14 event
\TYPO3\
is available, which allows to exclude / ignore such tables by adding them
to a deny list. Additionally, the PSR-14 event can be used to restrict the
search result on certain page IDs or to modify the search query altogether.
Example
Registration of the event listener in the extension's Services.
:
services:
# Place here the default dependency injection configuration
MyVendor\MyExtension\Backend\EventListener\MyEventListener:
tags:
- name: event.listener
identifier: 'my-extension/before-search-in-database-record-provider-event-listener'
Read how to configure dependency injection in extensions.
The corresponding event listener class:
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\Backend\EventListener;
use TYPO3\CMS\Backend\Search\Event\BeforeSearchInDatabaseRecordProviderEvent;
final class MyEventListener
{
public function __invoke(BeforeSearchInDatabaseRecordProviderEvent $event): void
{
$event->ignoreTable('my_custom_table');
}
}
API
- class BeforeSearchInDatabaseRecordProviderEvent
-
- Fully qualified name
-
\TYPO3\
CMS\ Backend\ Search\ Event\ Before Search In Database Record Provider Event
PSR-14 event to modify the incoming input about which tables should be searched for within the live search results. This allows adding additional DB tables to be excluded / ignored, to further limit the search result on certain page IDs or to modify the search query altogether.