pfaffman
(Jay Pfaffman)
08.Июнь.2026 22:34:36
1
У меня есть несколько пользовательских полей, которые клиент хочет использовать для поиска пользователей.
Если я ввожу / или использую поиск в верхней части страницы, он ищет по пользовательским полям и находит ожидаемых пользователей, но поиск по /u ищет только по имени пользователя.
Поиск вызывает что-то вроде:
https://hostname/directory_items?period=all&order=likes_received&name=cutr&cards=yes&user_field_ids=6%7C7%7C8%7C1%7C3&plugin_column_ids=15%7C11
Я почти уверен, что раньше это работало, и это регрессия.
3 лайка
Я не смог найти, когда именно это работало, но мне удалось исправить (или, вернее, привести к единообразию) оба пути выполнения кода.
main ← directory-search-custom-fields
opened 05:04PM - 09 Jun 26 UTC
Previously, the user directory (`/u`) search only matched usernames -- it never … found people by their *searchable* user custom field values (e.g. "Company" or "Member ID"), even though the quick search did. The gap appeared whenever `enable_names` was off or the term contained `_`, `.` or `-`, so member IDs, emails and phone numbers never matched.
This change lets the directory search those fields too, via an opt-in `search_custom_fields:` option on `UserSearch` that searches the `user_search_data` tsvector (mention autocomplete and chat are unchanged). It also escapes `LIKE` wildcards in the search term with `sanitize_sql_like`, and adds a tooltip warning that the "Searchable" toggle makes a field's value publicly findable in search.
Reported at https://meta.discourse.org/t/trouble-searching-user-custom-fields/404800
1 лайк