/** * translate fullText criteria * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { $connection = $GLOBALS['TYPO3_DB']; /** @var TYPO3\CMS\Core\Database\DatabaseConnection $connection */ $searchString = $criteria->getSearchString(); if ($criteria->getSearchParameter('booleanMode')) { $booleanMode = $criteria->getSearchParameter('booleanMode') ? ' IN BOOLEAN MODE' : ''; if ($criteria->getSearchParameter('booleanModeWrapWithStars')) { if (substr($searchString, 0, 1) != '*') { $searchString = '*' . $searchString; } if (substr($searchString, -1, 1) != '*') { $searchString .= '*'; } } } $searchString = $connection->fullQuoteStr($searchString, ''); return sprintf('MATCH (%s) AGAINST (%s%s)', Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($criteria->getFields()), $searchString, $booleanMode); }