Breaking: #98490 - Various hooks and methods changed in DatabaseRecordList

See forge#98490

Description

The following hooks have been removed

  • $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['getTable']

  • $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList']['modifyQuery']

  • $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList']['makeSearchStringConstraints']

They were mainly used within the list module / record listing or the Element Browser to modify the database query altering the result set of records rendered.

Along with the hooks, various method signatures within DatabaseRecordList have been changed.

  • DatabaseRecordList->getQueryBuilder() has the arguments $pageId and $additionalConstraints removed

  • DatabaseRecordList->getTable() only uses one argument now

  • DatabaseRecordList->makeSearchString() is now marked as protected

Impact

Extensions adding implementations for these hooks have no effect anymore.

Extensions making use of calling the PHP methods directly will result in a fatal PHP error.

Affected installations

TYPO3 installations with third-party extensions modifying the record list via the hooks above.

Migration

Use the new PSR-14 event ModifyDatabaseQueryForRecordListingEvent which serves at the very end to alter the actual QueryBuilder object to modify the database query before it is executed.