From f8fbe3793680af1dae2db2829cfc84068831c52f Mon Sep 17 00:00:00 2001 From: rxu Date: Wed, 28 Jun 2017 00:58:03 +0700 Subject: [ticket/14972] replace all occurrences of sizeof() with the count() PHPBB3-14972 --- phpBB/memberlist.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 985b45acf7..977857da59 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -719,7 +719,7 @@ switch ($mode) 'S_PROFILE_ACTION' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group'), 'S_GROUP_OPTIONS' => $group_options, - 'S_CUSTOM_FIELDS' => (isset($profile_fields['row']) && sizeof($profile_fields['row'])) ? true : false, + '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) : '', @@ -933,7 +933,7 @@ switch ($mode) // We validate form and field here, only id/class allowed $form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form; $field = (!preg_match('/^[a-z0-9_-]+$/i', $field)) ? '' : $field; - if ((($mode == '' || $mode == 'searchuser') || sizeof(array_intersect($request->variable_names(\phpbb\request\request_interface::GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_'))) + if ((($mode == '' || $mode == 'searchuser') || count(array_intersect($request->variable_names(\phpbb\request\request_interface::GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_'))) { $username = $request->variable('username', '', true); $email = strtolower($request->variable('email', '')); @@ -980,7 +980,7 @@ switch ($mode) $sql_where .= ($jabber) ? ' AND u.user_jabber ' . $db->sql_like_expression(str_replace('*', $db->get_any_char(), $jabber)) . ' ' : ''; $sql_where .= (is_numeric($count) && isset($find_key_match[$count_select])) ? ' AND u.user_posts ' . $find_key_match[$count_select] . ' ' . (int) $count . ' ' : ''; - if (isset($find_key_match[$joined_select]) && sizeof($joined) == 3) + if (isset($find_key_match[$joined_select]) && count($joined) == 3) { $joined_time = gmmktime(0, 0, 0, (int) $joined[1], (int) $joined[2], (int) $joined[0]); @@ -990,7 +990,7 @@ switch ($mode) } } - if (isset($find_key_match[$active_select]) && sizeof($active) == 3 && $auth->acl_get('u_viewonline')) + if (isset($find_key_match[$active_select]) && count($active) == 3 && $auth->acl_get('u_viewonline')) { $active_time = gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]); @@ -1449,7 +1449,7 @@ switch ($mode) $leaders_set = false; // So, did we get any users? - if (sizeof($user_list)) + if (count($user_list)) { // Session time?! Session time... $sql = 'SELECT session_user_id, MAX(session_time) AS session_time @@ -1534,7 +1534,7 @@ switch ($mode) $vars = array('user_list', 'use_contact_fields'); extract($phpbb_dispatcher->trigger_event('core.memberlist_memberrow_before', compact($vars))); - for ($i = 0, $end = sizeof($user_list); $i < $end; ++$i) + for ($i = 0, $end = count($user_list); $i < $end; ++$i) { $user_id = $user_list[$i]; $row = $id_cache[$user_id]; @@ -1550,21 +1550,21 @@ switch ($mode) $memberrow = array_merge(phpbb_show_profile($row, false, false, false), array( 'ROW_NUMBER' => $i + ($start + 1), - 'S_CUSTOM_PROFILE' => (isset($cp_row['row']) && sizeof($cp_row['row'])) ? true : false, + 'S_CUSTOM_PROFILE' => (isset($cp_row['row']) && count($cp_row['row'])) ? true : false, 'S_GROUP_LEADER' => $is_leader, 'S_INACTIVE' => $row['user_type'] == USER_INACTIVE, 'U_VIEW_PROFILE' => get_username_string('profile', $user_id, $row['username']), )); - if (isset($cp_row['row']) && sizeof($cp_row['row'])) + if (isset($cp_row['row']) && count($cp_row['row'])) { $memberrow = array_merge($memberrow, $cp_row['row']); } $template->assign_block_vars('memberrow', $memberrow); - if (isset($cp_row['blockrow']) && sizeof($cp_row['blockrow'])) + if (isset($cp_row['blockrow']) && count($cp_row['blockrow'])) { foreach ($cp_row['blockrow'] as $field_data) { -- cgit v1.2.1 From 9e375f32eb4d2eea65ba6fc929c82c65c6ab2d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dark=E2=9D=B6?= Date: Mon, 29 Oct 2018 00:28:43 +0530 Subject: [ticket/15858] Unapproved User(s) appearing as Guest in Team Page PHPBB3-15858 --- phpBB/memberlist.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 977857da59..d0dd70af01 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -173,7 +173,7 @@ switch ($mode) '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'), @@ -181,7 +181,7 @@ switch ($mode) ), ), - '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', ); -- cgit v1.2.1 From 3ed8cffad2de407df2f54712929d8a12956bc5e2 Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 04:02:13 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql PHPBB3-15889 --- phpBB/memberlist.php | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 977857da59..536006036c 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1469,19 +1469,25 @@ switch ($mode) // 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_array = array( + 'SELECT' => 'u.*' . $sql_select, + 'FROM' => array( + USERS_TABLE => 'u' . $sql_from + ), + 'WHERE' => $db->sql_in_set('u.user_id', $user_list) . $sql_where_data . '', + ); } else { - $sql = 'SELECT * - FROM ' . USERS_TABLE . ' - WHERE ' . $db->sql_in_set('user_id', $user_list); + $sql_array = array( + 'SELECT' => '*', + 'FROM' => array( + USERS_TABLE => 'u' + ), + 'WHERE' => $db->sql_in_set('u.user_id', $user_list), + ); } + $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); $id_cache = array(); @@ -1492,9 +1498,31 @@ switch ($mode) $id_cache[$row['user_id']] = $row; } + + /** + * Modify user data SQL before member row is created + * + * @event core.memberlist_modify_memberrow_sql + * @var string mode group + * @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 + * @var array id_cache Array of temp user ID data + * @since 3.2.6-RC1 + */ + $vars = array( + 'mode', + 'sql_select', + 'sql_from', + 'sql_array', + 'user_list', + 'id_cache' + ); + extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_memberrow_sql', compact($vars))); + $db->sql_freeresult($result); - // Load custom profile fields if ($config['load_cpf_memberlist']) { // Grab all profile fields from users in id cache for later use - similar to the poster cache -- cgit v1.2.1 From 89b6fb1168e2a04111123a672c37cc0d94ad5608 Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 04:24:57 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql PHPBB3-15889 --- phpBB/memberlist.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 536006036c..0203b2af4b 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1507,8 +1507,7 @@ switch ($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 - * @var array id_cache Array of temp user ID data + * @var array row Array containing the user_ID data * @since 3.2.6-RC1 */ $vars = array( @@ -1516,8 +1515,7 @@ switch ($mode) 'sql_select', 'sql_from', 'sql_array', - 'user_list', - 'id_cache' + 'row' ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_memberrow_sql', compact($vars))); -- cgit v1.2.1 From c5082250ea225d6b426ebf5e5818954dba6976dd Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 04:44:49 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql PHPBB3-15889 --- phpBB/memberlist.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 0203b2af4b..e27900f660 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1507,7 +1507,7 @@ switch ($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 row Array containing the user_ID data + * @var array id_cache Array of temp user ID data * @since 3.2.6-RC1 */ $vars = array( @@ -1515,7 +1515,7 @@ switch ($mode) 'sql_select', 'sql_from', 'sql_array', - 'row' + 'id_cache', ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_memberrow_sql', compact($vars))); -- cgit v1.2.1 From ec140a558b0721244da999930ee2a5ac264b05ea Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 06:42:20 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql PHPBB3-15889 --- phpBB/memberlist.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index e27900f660..7340737b2c 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1507,7 +1507,8 @@ switch ($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 id_cache Array of temp user ID data + * @var array user_list Array containing the user IDs + * @var array id_cache Temp. Array of users data * @since 3.2.6-RC1 */ $vars = array( @@ -1515,6 +1516,7 @@ switch ($mode) 'sql_select', 'sql_from', 'sql_array', + 'user_list', 'id_cache', ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_memberrow_sql', compact($vars))); -- cgit v1.2.1 From 73b709d0caf6ef3bd83c23192e0aa12c54952a66 Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 08:40:17 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql That's it. PHPBB3-15889 --- phpBB/memberlist.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 7340737b2c..ddebf5124c 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1487,17 +1487,6 @@ switch ($mode) 'WHERE' => $db->sql_in_set('u.user_id', $user_list), ); } - $sql = $db->sql_build_query('SELECT', $sql_array); - $result = $db->sql_query($sql); - - $id_cache = array(); - while ($row = $db->sql_fetchrow($result)) - { - $row['session_time'] = (!empty($session_times[$row['user_id']])) ? $session_times[$row['user_id']] : 0; - $row['last_visit'] = (!empty($row['session_time'])) ? $row['session_time'] : $row['user_lastvisit']; - - $id_cache[$row['user_id']] = $row; - } /** * Modify user data SQL before member row is created @@ -1507,8 +1496,7 @@ switch ($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 the user IDs - * @var array id_cache Temp. Array of users data + * @var array user_list Array containing list of users * @since 3.2.6-RC1 */ $vars = array( @@ -1517,10 +1505,21 @@ switch ($mode) 'sql_from', 'sql_array', 'user_list', - 'id_cache', ); 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(); + while ($row = $db->sql_fetchrow($result)) + { + $row['session_time'] = (!empty($session_times[$row['user_id']])) ? $session_times[$row['user_id']] : 0; + $row['last_visit'] = (!empty($row['session_time'])) ? $row['session_time'] : $row['user_lastvisit']; + + $id_cache[$row['user_id']] = $row; + } + $db->sql_freeresult($result); if ($config['load_cpf_memberlist']) -- cgit v1.2.1 From afcc713d39a05b8aec54f046b1f56170d56f4ac3 Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 30 Nov 2018 09:11:35 +0100 Subject: [ticket/15889] Add core.memberlist_modify_memberrow_sql fix select all on users table PHPBB3-15889 --- phpBB/memberlist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index ddebf5124c..97d709163a 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1480,7 +1480,7 @@ switch ($mode) else { $sql_array = array( - 'SELECT' => '*', + 'SELECT' => 'u.*', 'FROM' => array( USERS_TABLE => 'u' ), -- cgit v1.2.1 From 31b8fdf964585d7021ea86230c7129dedefc3c7d Mon Sep 17 00:00:00 2001 From: 3D-I Date: Sat, 1 Dec 2018 00:05:15 +0100 Subject: [ticket/15889] Restore comment line PHPBB3-15889 --- phpBB/memberlist.php | 1 + 1 file changed, 1 insertion(+) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 97d709163a..30aa0c1140 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1522,6 +1522,7 @@ switch ($mode) $db->sql_freeresult($result); + // 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 -- cgit v1.2.1 From 8b4c77784e9bd1788244b19966802c61947f18aa Mon Sep 17 00:00:00 2001 From: 3D-I Date: Sat, 1 Dec 2018 04:35:45 +0100 Subject: [ticket/15890] Add core.memberlist_modify_viewprofile_sql PHPBB3-15890 --- phpBB/memberlist.php | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 977857da59..13cb3b96d5 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -489,9 +489,31 @@ switch ($mode) } // 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); -- cgit v1.2.1 From e6ac4daf64a0671f21166708045a74ae59f5f048 Mon Sep 17 00:00:00 2001 From: 3D-I Date: Sun, 2 Dec 2018 03:53:39 +0100 Subject: [ticket/15891] Add core.memberlist_modify_view_profile_template_vars PHPBB3-15891 --- phpBB/memberlist.php | 84 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 34 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 977857da59..0573d561b9 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -702,42 +702,58 @@ switch ($mode) $member['posts_in_queue'] = 0; } - $template->assign_vars(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), - - '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']), - - '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_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') : '', + // 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), + + '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']), + + '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_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) : '', + + 'U_CANONICAL' => generate_board_url() . '/' . append_sid("memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id, true, ''), + ); - '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) : '', + /** + * 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))); - 'U_CANONICAL' => generate_board_url() . '/' . append_sid("memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id, true, ''), - )); + // Assign vars to memberlist_view.html + $template->assign_vars($template_ary); if (!empty($profile_fields['row'])) { -- cgit v1.2.1 From cc49d8f3256580991cdd074d00ed0983a270ca75 Mon Sep 17 00:00:00 2001 From: GanstaZ Date: Sat, 15 Dec 2018 18:37:31 +0200 Subject: [ticket/15914] Add core.modify_memberlist_viewprofile_group* events PHPBB3-15914 --- phpBB/memberlist.php | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index d0dd70af01..8b5a7d2ce0 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -523,12 +523,37 @@ switch ($mode) $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, g.group_rank, 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.5 + */ + $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(); @@ -567,6 +592,20 @@ switch ($mode) 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.5 + */ + $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) { -- cgit v1.2.1 From 349ab42fdc994c5fa16436bd2d82df0ef4019f16 Mon Sep 17 00:00:00 2001 From: GanstaZ Date: Sat, 15 Dec 2018 19:22:38 +0200 Subject: [ticket/15914] fix sql line PHPBB3-15914 --- phpBB/memberlist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 8b5a7d2ce0..6a528c82c3 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -524,7 +524,7 @@ switch ($mode) // Do the SQL thang $sql_ary = [ - 'SELECT' => 'g.group_id, g.group_name, g.group_type, g.group_rank, ug.user_id', + 'SELECT' => 'g.group_id, g.group_name, g.group_type, ug.user_id', 'FROM' => [ GROUPS_TABLE => 'g', -- cgit v1.2.1 From 552bda626665e3f99e1b77f77edb833bb0e2b667 Mon Sep 17 00:00:00 2001 From: GanstaZ Date: Sat, 22 Dec 2018 22:33:35 +0200 Subject: [ticket/15914] Change since PHPBB3-15914 --- phpBB/memberlist.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 6a528c82c3..35472a337f 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -546,7 +546,7 @@ switch ($mode) * * @event core.modify_memberlist_viewprofile_group_sql * @var array sql_ary Array containing the query - * @since 3.2.5 + * @since 3.2.6-RC1 */ $vars = array( 'sql_ary', @@ -598,7 +598,7 @@ switch ($mode) * @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.5 + * @since 3.2.6-RC1 */ $vars = array( 'group_data', -- cgit v1.2.1 From daf58a13c236aed25f08f09d22ca0f482103e392 Mon Sep 17 00:00:00 2001 From: mrgoldy Date: Wed, 2 Jan 2019 14:35:58 +0100 Subject: [ticket/15885] Display group rank on memberlist_body PHPBB3-15885 --- phpBB/memberlist.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index da60ba1866..ecc699f1c4 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1207,18 +1207,18 @@ switch ($mode) $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']) { - $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'] .= '
'; + $group_rank_data['img'] .= '
'; } } // include modules for manage groups link display or not @@ -1245,11 +1245,11 @@ switch ($mode) '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, - '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,) -- cgit v1.2.1 From eead94c8a6829f43df6e0e97ecfa7ef566d92bc3 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sat, 29 Dec 2018 11:43:23 +0100 Subject: [ticket/15889] Use array version of sql_from tables in sql array PHPBB3-15889 --- phpBB/memberlist.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 30aa0c1140..bcd72762ae 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1469,11 +1469,23 @@ switch ($mode) // Do the SQL thang if ($mode == 'group') { + $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( - USERS_TABLE => 'u' . $sql_from - ), + 'FROM' => array_merge([USERS_TABLE => 'u'], $extra_tables), 'WHERE' => $db->sql_in_set('u.user_id', $user_list) . $sql_where_data . '', ); } -- cgit v1.2.1 From 469bf9227e33cc538af6c99a0cd1656e5571a0f5 Mon Sep 17 00:00:00 2001 From: kasimi Date: Mon, 18 Mar 2019 16:47:24 +0100 Subject: [ticket/15995] Add core.memberlist_modify_sort_pagination_params PHPBB3-15995 --- phpBB/memberlist.php | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index da60ba1866..e247b23c6e 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1369,11 +1369,6 @@ switch ($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) ? '&' : ''; @@ -1385,16 +1380,47 @@ switch ($mode) } $first_characters['other'] = $user->lang['OTHER']; + $first_char_block_vars = []; + 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', - )); + ]; } + /** + * 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_'))) { -- cgit v1.2.1 From a14a666e86dfa0941785a05a8e8df935104a908f Mon Sep 17 00:00:00 2001 From: 3D-I Date: Fri, 29 Mar 2019 23:53:56 +0100 Subject: [ticket/15889] Change mode description in doc-block PHPBB3-15889 [ticket/15889] Change mode description in doc-block PHPBB3-15889 [ticket/15889] Amend doc-block PHPBB3-15889 [ticket/15889] Amend doc-block PHPBB3-15889 [ticket/15889] Change mode description in doc-block PHPBB3-15889 --- phpBB/memberlist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 5efb451f55..3e71a2a495 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1504,7 +1504,7 @@ switch ($mode) * Modify user data SQL before member row is created * * @event core.memberlist_modify_memberrow_sql - * @var string mode group + * @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 -- cgit v1.2.1 From 8339269919e29dd91c8525bdb3a91c4fea92dbab Mon Sep 17 00:00:00 2001 From: rxu Date: Mon, 5 Aug 2019 20:12:10 +0700 Subject: [ticket/16124] Fix users search by last visit time in memberlist.php PHPBB3-16124 --- phpBB/memberlist.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 8f4d54b2c7..810af113b0 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1073,7 +1073,18 @@ switch ($mode) if ($active_time !== false) { - $sql_where .= " AND u.user_lastvisit " . $find_key_match[$active_select] . ' ' . $active_time; + if ((int) $active[0] == 0 && (int) $active[1] == 0 && (int) $active[2] == 0) + { + $sql_where .= ' AND u.user_lastvisit = 0'; + } + else if ($active_select != 'lt') + { + $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 . ')'; + } } } -- cgit v1.2.1 From e8dcf27ee3f0c792ecc71c7375d553f7557cafd8 Mon Sep 17 00:00:00 2001 From: rxu Date: Tue, 6 Aug 2019 01:15:50 +0700 Subject: [ticket/16124] Search users who have never logged in for lt case only PHPBB3-16124 --- phpBB/memberlist.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/memberlist.php') diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 810af113b0..ce7159c150 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1073,11 +1073,11 @@ switch ($mode) if ($active_time !== false) { - if ((int) $active[0] == 0 && (int) $active[1] == 0 && (int) $active[2] == 0) + 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 != 'lt') + else if ($active_select === 'gt') { $sql_where .= ' AND u.user_lastvisit ' . $find_key_match[$active_select] . ' ' . $active_time; } -- cgit v1.2.1