diff options
author | GanstaZ <ganstaz@hotmail.com> | 2018-12-15 18:37:31 +0200 |
---|---|---|
committer | GanstaZ <ganstaz@hotmail.com> | 2018-12-15 18:37:31 +0200 |
commit | cc49d8f3256580991cdd074d00ed0983a270ca75 (patch) | |
tree | 479f8470f02780e1b914411c39628ec25dd535cc | |
parent | 73fd2f357323bc3690ce15be23a54ef1896f87fa (diff) | |
download | forums-cc49d8f3256580991cdd074d00ed0983a270ca75.tar forums-cc49d8f3256580991cdd074d00ed0983a270ca75.tar.gz forums-cc49d8f3256580991cdd074d00ed0983a270ca75.tar.bz2 forums-cc49d8f3256580991cdd074d00ed0983a270ca75.tar.xz forums-cc49d8f3256580991cdd074d00ed0983a270ca75.zip |
[ticket/15914] Add core.modify_memberlist_viewprofile_group* events
PHPBB3-15914
-rw-r--r-- | phpBB/memberlist.php | 51 |
1 files changed, 45 insertions, 6 deletions
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) { |