Line 173 | Line 173 |
---|
'LEFT_JOIN' => array( array( 'FROM' => array(USERS_TABLE => 'u'),
|
'LEFT_JOIN' => array( array( 'FROM' => array(USERS_TABLE => 'u'),
|
'ON' => 'ug.user_id = u.user_id AND ug.user_pending = 0',
| 'ON' => 'ug.user_id = u.user_id',
|
), array( 'FROM' => array(GROUPS_TABLE => 'g'),
| ), array( 'FROM' => array(GROUPS_TABLE => 'g'),
|
Line 181 | Line 181 |
---|
), ),
|
), ),
|
'WHERE' => $db->sql_in_set('g.group_id', $group_ids, false, true),
| 'WHERE' => $db->sql_in_set('g.group_id', $group_ids, false, true) . ' AND ug.user_pending = 0',
|
'ORDER_BY' => 'u.username_clean ASC', );
| 'ORDER_BY' => 'u.username_clean ASC', );
|
Line 489 | Line 489 |
---|
}
// Get user...
|
}
// Get user...
|
$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE ' . (($username) ? "username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'" : "user_id = $user_id");
| $sql_array = array( 'SELECT' => 'u.*', 'FROM' => array( USERS_TABLE => 'u' ), 'WHERE' => (($username) ? "u.username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'" : "u.user_id = $user_id"), );
/** * Modify user data SQL before member profile row is created * * @event core.memberlist_modify_viewprofile_sql * @var int user_id The user ID * @var string username The username * @var array sql_array Array containing the main query * @since 3.2.6-RC1 */ $vars = array( 'user_id', 'username', 'sql_array', ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_viewprofile_sql', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_array);
|
$result = $db->sql_query($sql); $member = $db->sql_fetchrow($result); $db->sql_freeresult($result);
| $result = $db->sql_query($sql); $member = $db->sql_fetchrow($result); $db->sql_freeresult($result);
|
Line 523 | Line 545 |
---|
$sql_uid_ary = ($auth_hidden_groups) ? array($user_id) : array($user_id, (int) $user->data['user_id']);
// Do the SQL thang
|
$sql_uid_ary = ($auth_hidden_groups) ? array($user_id) : array($user_id, (int) $user->data['user_id']);
// Do the SQL thang
|
$sql = 'SELECT g.group_id, g.group_name, g.group_type, ug.user_id FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug WHERE ' . $db->sql_in_set('ug.user_id', $sql_uid_ary) . ' AND g.group_id = ug.group_id AND ug.user_pending = 0'; $result = $db->sql_query($sql);
| $sql_ary = [ 'SELECT' => 'g.group_id, g.group_name, g.group_type, ug.user_id',
'FROM' => [ GROUPS_TABLE => 'g', ],
'LEFT_JOIN' => [ [ 'FROM' => [USER_GROUP_TABLE => 'ug'], 'ON' => 'g.group_id = ug.group_id', ], ],
'WHERE' => $db->sql_in_set('ug.user_id', $sql_uid_ary) . ' AND ug.user_pending = 0', ];
/** * Modify the query used to get the group data * * @event core.modify_memberlist_viewprofile_group_sql * @var array sql_ary Array containing the query * @since 3.2.6-RC1 */ $vars = array( 'sql_ary', ); extract($phpbb_dispatcher->trigger_event('core.modify_memberlist_viewprofile_group_sql', compact($vars)));
$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));
|
// Divide data into profile data and current user data $profile_groups = $user_groups = array();
| // Divide data into profile data and current user data $profile_groups = $user_groups = array();
|
Line 566 | Line 613 |
---|
unset($profile_groups); unset($user_groups); asort($group_sort);
|
unset($profile_groups); unset($user_groups); asort($group_sort);
|
| /** * Modify group data before options is created and data is unset * * @event core.modify_memberlist_viewprofile_group_data * @var array group_data Array containing the group data * @var array group_sort Array containing the sorted group data * @since 3.2.6-RC1 */ $vars = array( 'group_data', 'group_sort', ); extract($phpbb_dispatcher->trigger_event('core.modify_memberlist_viewprofile_group_data', compact($vars)));
|
$group_options = ''; foreach ($group_sort as $group_id => $null)
| $group_options = ''; foreach ($group_sort as $group_id => $null)
|
Line 702 | Line 763 |
---|
$member['posts_in_queue'] = 0; }
|
$member['posts_in_queue'] = 0; }
|
$template->assign_vars(array( 'L_POSTS_IN_QUEUE' => $user->lang('NUM_POSTS_IN_QUEUE', $member['posts_in_queue']),
| // Define the main array of vars to assign to memberlist_view.html $template_ary = array( 'L_POSTS_IN_QUEUE' => $user->lang('NUM_POSTS_IN_QUEUE', $member['posts_in_queue']),
|
|
|
'POSTS_DAY' => $user->lang('POST_DAY', $posts_per_day), 'POSTS_PCT' => $user->lang('POST_PCT', $percentage),
| 'POSTS_DAY' => $user->lang('POST_DAY', $posts_per_day), 'POSTS_PCT' => $user->lang('POST_PCT', $percentage),
|
|
|
'SIGNATURE' => $member['user_sig'], 'POSTS_IN_QUEUE'=> $member['posts_in_queue'],
| 'SIGNATURE' => $member['user_sig'], 'POSTS_IN_QUEUE' => $member['posts_in_queue'],
|
|
|
'PM_IMG' => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']), 'L_SEND_EMAIL_USER' => $user->lang('SEND_EMAIL_USER', $member['username']), 'EMAIL_IMG' => $user->img('icon_contact_email', $user->lang['EMAIL']), 'JABBER_IMG' => $user->img('icon_contact_jabber', $user->lang['JABBER']), 'SEARCH_IMG' => $user->img('icon_user_search', $user->lang['SEARCH']),
| 'PM_IMG' => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']), 'L_SEND_EMAIL_USER' => $user->lang('SEND_EMAIL_USER', $member['username']), 'EMAIL_IMG' => $user->img('icon_contact_email', $user->lang['EMAIL']), 'JABBER_IMG' => $user->img('icon_contact_jabber', $user->lang['JABBER']), 'SEARCH_IMG' => $user->img('icon_user_search', $user->lang['SEARCH']),
|
|
|
'S_PROFILE_ACTION' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group'), 'S_GROUP_OPTIONS' => $group_options, 'S_CUSTOM_FIELDS' => (isset($profile_fields['row']) && count($profile_fields['row'])) ? true : false,
| 'S_PROFILE_ACTION' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group'), 'S_GROUP_OPTIONS' => $group_options, 'S_CUSTOM_FIELDS' => (isset($profile_fields['row']) && count($profile_fields['row'])) ? true : false,
|
|
|
'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '', 'U_USER_BAN' => ($auth->acl_get('m_ban') && $user_id != $user->data['user_id']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=ban&mode=user&u=' . $user_id, true, $user->session_id) : '', 'U_MCP_QUEUE' => ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',
| 'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '', 'U_USER_BAN' => ($auth->acl_get('m_ban') && $user_id != $user->data['user_id']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=ban&mode=user&u=' . $user_id, true, $user->session_id) : '', 'U_MCP_QUEUE' => ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',
|
|
|
'U_SWITCH_PERMISSIONS' => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&u={$user_id}&hash=" . generate_link_hash('switchperm')) : '', 'U_EDIT_SELF' => ($user_id == $user->data['user_id'] && $auth->acl_get('u_chgprofileinfo')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_profile&mode=profile_info') : '',
| 'U_SWITCH_PERMISSIONS' => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&u={$user_id}&hash=" . generate_link_hash('switchperm')) : '', 'U_EDIT_SELF' => ($user_id == $user->data['user_id'] && $auth->acl_get('u_chgprofileinfo')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_profile&mode=profile_info') : '',
|
|
|
'S_USER_NOTES' => ($user_notes_enabled) ? true : false, 'S_WARN_USER' => ($warn_user_enabled) ? true : false, 'S_ZEBRA' => ($user->data['user_id'] != $user_id && $user->data['is_registered'] && $zebra_enabled) ? true : false, 'U_ADD_FRIEND' => (!$friend && !$foe && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_ADD_FOE' => (!$friend && !$foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&mode=foes&add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_REMOVE_FRIEND' => ($friend && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&usernames[]=' . $user_id) : '', 'U_REMOVE_FOE' => ($foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&mode=foes&usernames[]=' . $user_id) : '',
| 'S_USER_NOTES' => ($user_notes_enabled) ? true : false, 'S_WARN_USER' => ($warn_user_enabled) ? true : false, 'S_ZEBRA' => ($user->data['user_id'] != $user_id && $user->data['is_registered'] && $zebra_enabled) ? true : false, 'U_ADD_FRIEND' => (!$friend && !$foe && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_ADD_FOE' => (!$friend && !$foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&mode=foes&add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_REMOVE_FRIEND' => ($friend && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&usernames[]=' . $user_id) : '', 'U_REMOVE_FOE' => ($foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&mode=foes&usernames[]=' . $user_id) : '',
|
|
|
'U_CANONICAL' => generate_board_url() . '/' . append_sid("memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id, true, ''), ));
| 'U_CANONICAL' => generate_board_url() . '/' . append_sid("memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id, true, ''), );
/** * Modify user's template vars before we display the profile * * @event core.memberlist_modify_view_profile_template_vars * @var array template_ary Array with user's template vars * @since 3.2.6-RC1 */ $vars = array( 'template_ary', ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_view_profile_template_vars', compact($vars)));
// Assign vars to memberlist_view.html $template->assign_vars($template_ary);
|
if (!empty($profile_fields['row'])) {
| if (!empty($profile_fields['row'])) {
|
Line 996 | Line 1073 |
---|
if ($active_time !== false) {
|
if ($active_time !== false) {
|
$sql_where .= " AND u.user_lastvisit " . $find_key_match[$active_select] . ' ' . $active_time;
| if ($active_select === 'lt' && (int) $active[0] == 0 && (int) $active[1] == 0 && (int) $active[2] == 0) { $sql_where .= ' AND u.user_lastvisit = 0'; } else if ($active_select === 'gt') { $sql_where .= ' AND u.user_lastvisit ' . $find_key_match[$active_select] . ' ' . $active_time; } else { $sql_where .= ' AND (u.user_lastvisit > 0 AND u.user_lastvisit < ' . $active_time . ')'; }
|
} }
| } }
|
Line 1146 | Line 1234 |
---|
$avatar_img = phpbb_get_group_avatar($group_row);
// ... same for group rank
|
$avatar_img = phpbb_get_group_avatar($group_row);
// ... same for group rank
|
$user_rank_data = array(
| $group_rank_data = array(
|
'title' => null, 'img' => null, 'img_src' => null, ); if ($group_row['group_rank']) {
|
'title' => null, 'img' => null, 'img_src' => null, ); if ($group_row['group_rank']) {
|
$user_rank_data = phpbb_get_user_rank($group_row, false);
| $group_rank_data = $group_helper->get_rank($group_row);
|
|
|
if ($user_rank_data['img'])
| if ($group_rank_data['img'])
|
{
|
{
|
$user_rank_data['img'] .= '<br />';
| $group_rank_data['img'] .= '<br />';
|
} } // include modules for manage groups link display or not
| } } // include modules for manage groups link display or not
|
Line 1184 | Line 1272 |
---|
'GROUP_NAME' => $group_helper->get_name($group_row['group_name']), 'GROUP_COLOR' => $group_row['group_colour'], 'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_row['l_group_type']],
|
'GROUP_NAME' => $group_helper->get_name($group_row['group_name']), 'GROUP_COLOR' => $group_row['group_colour'], 'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_row['l_group_type']],
|
'GROUP_RANK' => $user_rank_data['title'],
| 'GROUP_RANK' => $group_rank_data['title'],
|
'AVATAR_IMG' => $avatar_img,
|
'AVATAR_IMG' => $avatar_img,
|
'RANK_IMG' => $user_rank_data['img'], 'RANK_IMG_SRC' => $user_rank_data['img_src'],
| 'RANK_IMG' => $group_rank_data['img'], 'RANK_IMG_SRC' => $group_rank_data['img_src'],
|
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&g=' . $group_id) : '', 'U_MANAGE' => ($can_manage_group) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_groups&mode=manage') : false,)
| 'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&g=' . $group_id) : '', 'U_MANAGE' => ($can_manage_group) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_groups&mode=manage') : false,)
|
Line 1307 | Line 1395 |
---|
$u_first_char_params[] = "mode=$mode"; } $sort_params[] = "mode=$mode";
|
$u_first_char_params[] = "mode=$mode"; } $sort_params[] = "mode=$mode";
|
$pagination_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $params)); $sort_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $sort_params));
unset($search_params, $sort_params);
| |
$u_first_char_params = implode('&', $u_first_char_params); $u_first_char_params .= ($u_first_char_params) ? '&' : '';
| $u_first_char_params = implode('&', $u_first_char_params); $u_first_char_params .= ($u_first_char_params) ? '&' : '';
|
Line 1323 | Line 1406 |
---|
$first_characters[chr($i)] = chr($i - 32); } $first_characters['other'] = $user->lang['OTHER'];
|
$first_characters[chr($i)] = chr($i - 32); } $first_characters['other'] = $user->lang['OTHER'];
|
| $first_char_block_vars = [];
|
foreach ($first_characters as $char => $desc) {
|
foreach ($first_characters as $char => $desc) {
|
$template->assign_block_vars('first_char', array(
| $first_char_block_vars[] = [
|
'DESC' => $desc, 'VALUE' => $char, 'S_SELECTED' => ($first_char == $char) ? true : false, 'U_SORT' => append_sid("{$phpbb_root_path}memberlist.$phpEx", $u_first_char_params . 'first_char=' . $char) . '#memberlist',
|
'DESC' => $desc, 'VALUE' => $char, 'S_SELECTED' => ($first_char == $char) ? true : false, 'U_SORT' => append_sid("{$phpbb_root_path}memberlist.$phpEx", $u_first_char_params . 'first_char=' . $char) . '#memberlist',
|
));
| ];
|
}
|
}
|
| /** * Modify memberlist sort and pagination parameters * * @event core.memberlist_modify_sort_pagination_params * @var array sort_params Array with URL parameters for sorting * @var array params Array with URL parameters for pagination * @var array first_characters Array that maps each letter in a-z, 'other' and the empty string to their display representation * @var string u_first_char_params Concatenated URL parameters for first character search links * @var array first_char_block_vars Template block variables for each first character * @var int total_users Total number of users found in this search * @since 3.2.6-RC1 */ $vars = [ 'sort_params', 'params', 'first_characters', 'u_first_char_params', 'first_char_block_vars', 'total_users', ]; extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_sort_pagination_params', compact($vars)));
$template->assign_block_vars_array('first_char', $first_char_block_vars);
$pagination_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $params)); $sort_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $sort_params));
unset($search_params, $sort_params);
|
// Some search user specific data if (($mode == '' || $mode == 'searchuser') && ($config['load_search'] || $auth->acl_get('a_')))
| // Some search user specific data if (($mode == '' || $mode == 'searchuser') && ($config['load_search'] || $auth->acl_get('a_')))
|
Line 1469 | Line 1583 |
---|
// Do the SQL thang if ($mode == 'group') {
|
// Do the SQL thang if ($mode == 'group') {
|
$sql = "SELECT u.* $sql_select FROM " . USERS_TABLE . " u $sql_from WHERE " . $db->sql_in_set('u.user_id', $user_list) . " $sql_where_data";
| $sql_from_ary = explode(',', $sql_from); $extra_tables = []; foreach ($sql_from_ary as $entry) { $table_data = explode(' ', trim($entry));
if (empty($table_data[0]) || empty($table_data[1])) { continue; }
$extra_tables[$table_data[0]] = $table_data[1]; }
$sql_array = array( 'SELECT' => 'u.*' . $sql_select, 'FROM' => array_merge([USERS_TABLE => 'u'], $extra_tables), 'WHERE' => $db->sql_in_set('u.user_id', $user_list) . $sql_where_data . '', );
|
} else {
|
} else {
|
$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $user_list);
| $sql_array = array( 'SELECT' => 'u.*', 'FROM' => array( USERS_TABLE => 'u' ), 'WHERE' => $db->sql_in_set('u.user_id', $user_list), );
|
}
|
}
|
| /** * Modify user data SQL before member row is created * * @event core.memberlist_modify_memberrow_sql * @var string mode Memberlist mode * @var string sql_select Additional select statement * @var string sql_from Additional from statement * @var array sql_array Array containing the main query * @var array user_list Array containing list of users * @since 3.2.6-RC1 */ $vars = array( 'mode', 'sql_select', 'sql_from', 'sql_array', 'user_list', ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_memberrow_sql', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_array);
|
$result = $db->sql_query($sql);
$id_cache = array();
| $result = $db->sql_query($sql);
$id_cache = array();
|
Line 1492 | Line 1645 |
---|
$id_cache[$row['user_id']] = $row; }
|
$id_cache[$row['user_id']] = $row; }
|
|
|
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
// Load custom profile fields
| // Load custom profile fields if required
|
if ($config['load_cpf_memberlist']) { // Grab all profile fields from users in id cache for later use - similar to the poster cache
| if ($config['load_cpf_memberlist']) { // Grab all profile fields from users in id cache for later use - similar to the poster cache
|