function privatemsg_sql_autocomplete in Privatemsg 6.2
Same name and namespace in other branches
- 6 privatemsg.module \privatemsg_sql_autocomplete()
- 7.2 privatemsg.module \privatemsg_sql_autocomplete()
- 7 privatemsg.module \privatemsg_sql_autocomplete()
Query definition to search for username autocomplete suggestions.
Parameters
$fragments: Query fragments array.
$search: Which search string is currently searched for.
$names: Array of names not to be used as suggestions.
Related topics
File
- ./
privatemsg.module, line 1248 - Allows users to send private messages to other users.
Code
function privatemsg_sql_autocomplete(&$fragments, $search, $names) {
$fragments['primary_table'] = '{users} u';
$fragments['select'][] = 'u.uid';
// Exclude users that have disabled private messaging.
$fragments['where'][] = "NOT EXISTS (SELECT 1 FROM {pm_setting} pms WHERE pms.id = u.uid AND pms.type = 'user' AND pms.setting = 'disabled')";
// Escape the % to get it through the placeholder replacement.
$fragments['where'][] = "u.name LIKE '%s'";
$fragments['query_args']['where'][] = $search . '%%';
if (!empty($names)) {
// If there are already names selected, exclude them from the suggestions.
$fragments['where'][] = "u.name NOT IN (" . db_placeholders($names, 'text') . ")";
$fragments['query_args']['where'] += $names;
}
// Only load active users and sort them by name.
$fragments['where'][] = 'u.status <> 0';
$fragments['order_by'][] = 'u.name ASC';
}