mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-19 06:51:33 +02:00
Merge pull request #2267 from prototech/ticket/10737
[ticket/10737] Add live member search. * prototech/ticket/10737: [ticket/10737] Remove loading indicator. [ticket/10737] Enforce allow_live_searches setting in memberlist.php. [ticket/10737] Add config setting to disable live searches. [ticket/10737] Add loading indicator and alert box code to simple_footer.html. [ticket/10737] Load core.js and ajax.js in simple_footer.html. [ticket/10737] Set the username as the input value instead of redirecting. [ticket/10737] Drop subsilver2 changes. [ticket/10737] Add a more generic live search implementation. [ticket/10737] Clean up memberlist.php. [ticket/10737] Use dropdown for search results container. [ticket/10737] Adding delayed keyup and removing target_blank. [ticket/10737] Using UTF-8 aware alternatives in PHP code. [ticket/10737] Removing obsolete code. [ticket/10737] Avoid hard-coding table row and use case-insensitive search. [ticket/10737] Removing unnecessary/obsolete code. [ticket/10737] Using JQuery events and JSON response. [ticket/10737] Code fixes in AJAX search feature [ticket/10737] Improvements over last commit [ticket/10737] Adding username suggestions in "Find a member" using AJAX
This commit is contained in:
@@ -40,7 +40,7 @@ if ($mode == 'leaders')
|
||||
}
|
||||
|
||||
// Check our mode...
|
||||
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'searchuser', 'team')))
|
||||
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'searchuser', 'team', 'livesearch')))
|
||||
{
|
||||
trigger_error('NO_MODE');
|
||||
}
|
||||
@@ -50,6 +50,13 @@ switch ($mode)
|
||||
case 'email':
|
||||
break;
|
||||
|
||||
case 'livesearch':
|
||||
if (!$config['allow_live_searches'])
|
||||
{
|
||||
trigger_error('LIVE_SEARCHES_NOT_ALLOWED');
|
||||
}
|
||||
// No break
|
||||
|
||||
default:
|
||||
// Can this user view profiles/memberlist?
|
||||
if (!$auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
|
||||
@@ -990,6 +997,35 @@ switch ($mode)
|
||||
|
||||
break;
|
||||
|
||||
case 'livesearch':
|
||||
|
||||
$username_chars = $request->variable('username', '', true);
|
||||
|
||||
$sql = 'SELECT username, user_id, user_colour
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('user_type', array(USER_NORMAL, USER_FOUNDER)) . '
|
||||
AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->any_char);
|
||||
$result = $db->sql_query_limit($sql, 10);
|
||||
$user_list = array();
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$user_list[] = array(
|
||||
'user_id' => (int) $row['user_id'],
|
||||
'result' => $row['username'],
|
||||
'username_full' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
'display' => get_username_string('no_profile', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
);
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
$json_response = new \phpbb\json_response();
|
||||
$json_response->send(array(
|
||||
'keyword' => $username_chars,
|
||||
'results' => $user_list,
|
||||
));
|
||||
|
||||
break;
|
||||
|
||||
case 'group':
|
||||
default:
|
||||
// The basic memberlist
|
||||
@@ -1627,6 +1663,7 @@ switch ($mode)
|
||||
|
||||
'U_FIND_MEMBER' => ($config['load_search'] || $auth->acl_get('a_')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser' . (($start) ? "&start=$start" : '') . (!empty($params) ? '&' . implode('&', $params) : '')) : '',
|
||||
'U_HIDE_FIND_MEMBER' => ($mode == 'searchuser' || ($mode == '' && $submit)) ? $u_hide_find_member : '',
|
||||
'U_LIVE_SEARCH' => ($config['allow_live_searches']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=livesearch') : false,
|
||||
'U_SORT_USERNAME' => $sort_url . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
|
Reference in New Issue
Block a user