aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/memberlist.php
diff options
context:
space:
mode:
authorGanstaZ <ganstaz@hotmail.com>2018-12-15 18:37:31 +0200
committerGanstaZ <ganstaz@hotmail.com>2018-12-15 18:37:31 +0200
commitcc49d8f3256580991cdd074d00ed0983a270ca75 (patch)
tree479f8470f02780e1b914411c39628ec25dd535cc /phpBB/memberlist.php
parent73fd2f357323bc3690ce15be23a54ef1896f87fa (diff)
downloadforums-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
Diffstat (limited to 'phpBB/memberlist.php')
-rw-r--r--phpBB/memberlist.php51
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)
{