Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Improve fe_users search with Fulltext MySQL search to match names in first_name and last_name
- * e.g "jenni mair" will match rows with "jennifer" as first_name and "mair" as last_name
- * @param array $queryParts
- * @param AbstractDatabaseRecordList $parentObject
- * @param string $table
- * @param int $id
- * @param string $addWhere
- * @param string $fieldList
- * @param array $_params
- */
- public function makeQueryArray_post(&$queryParts, $parentObject, $table, $id, $addWhere, $fieldList, $_params)
- {
- if ($table === "fe_users" && !empty($parentObject->searchString)) {
- $searchTokens = String::multiExplode(array(" ", ",", ":", "."), trim($parentObject->searchString));
- if (count($searchTokens) == 2) {
- /** @var DatabaseConnection $db */
- $db = $GLOBALS["TYPO3_DB"];
- $where = trim($queryParts["WHERE"]);
- //Last character is a closing bracket
- if (substr($where, -1) === ")") {
- //Remove last closing bracket so to add another search condition
- $where = substr($where, 0, -1);
- //Build Fulltext search
- $where .= " OR MATCH(first_name,last_name) "
- . "AGAINST('+" . $db->quoteStr($searchTokens[0], $table)
- . "* +"
- . $db->quoteStr($searchTokens[1], $table)
- . "*' IN BOOLEAN MODE)";
- //Add removed bracket
- $where .= ")";
- $queryParts["WHERE"] = $where;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement