diff --git a/root/portal/block/leaders_ext.php b/root/portal/block/leaders_ext.php new file mode 100644 index 00000000..342b22af --- /dev/null +++ b/root/portal/block/leaders_ext.php @@ -0,0 +1,117 @@ +add_lang('groups'); + +$legends = array(); +$groups = array(); + +if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) +{ + $sql = 'SELECT group_id, group_name, group_colour, group_type + FROM ' . GROUPS_TABLE . ' + WHERE group_legend = 1 + ORDER BY group_name ASC'; +} +else +{ + $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type + FROM ' . GROUPS_TABLE . ' g + LEFT JOIN ' . USER_GROUP_TABLE . ' ug + ON ( + g.group_id = ug.group_id + AND ug.user_id = ' . $user->data['user_id'] . ' + AND ug.user_pending = 0 + ) + WHERE g.group_legend = 1 + AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ') + ORDER BY g.group_name ASC'; +} +$result = $db->sql_query($sql); + +while ($row = $db->sql_fetchrow($result)) +{ + $groups[$row['group_id']] = array( + 'group_name' => $row['group_name'], + 'group_colour' => $row['group_colour'], + 'group_type' => $row['group_type'], + 'group_users' => array(), + ); + $legends[] = $row['group_id']; +} +$db->sql_freeresult($result); + +if( sizeof($legends) ) +{ + $sql = 'SELECT + u.user_id, u.username, u.user_colour, u.group_id + FROM + ' . USERS_TABLE . ' AS u + WHERE + '. $db->sql_in_set('u.group_id', $legends) . ' + ORDER BY u.username ASC'; + + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + $groups[$row['group_id']]['group_users'][] = array( + 'user_id' => $row['user_id'], + 'username' => $row['username'], + 'user_colour' => $row['user_colour'], + ); + } + + $db->sql_freeresult($result); +} + +if( sizeof($groups) ) +{ + foreach($groups as $group_id => $group) + { + if( sizeof($group['group_users']) ) + { + $group_name = ($group['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group['group_name']] : $group['group_name']; + $u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $group_id); + + $template->assign_block_vars('group', array( + 'GROUP_NAME' => $group_name, + 'GROUP_COLOUR' => $group['group_colour'], + 'U_GROUP' => $u_group, + )); + + foreach($group['group_users'] as $group_user) + { + $template->assign_block_vars('group.member', array( + 'USER_ID' => $group_user['user_id'], + 'USERNAME_FULL' => get_username_string('full', $group_user['user_id'], $group_user['username'], $group_user['user_colour']), + )); + } + } + } +} +$template->assign_vars(array( + 'S_DISPLAY_LEADERS_EXT' => true, +)); + +?> \ No newline at end of file diff --git a/root/styles/prosilver/template/portal/block/leaders_ext.html b/root/styles/prosilver/template/portal/block/leaders_ext.html new file mode 100644 index 00000000..ca712206 --- /dev/null +++ b/root/styles/prosilver/template/portal/block/leaders_ext.html @@ -0,0 +1,18 @@ + +
{L_THE_TEAM}| {L_THE_TEAM} | +
|---|
| + {group.GROUP_NAME} + | +
|
+ + |
+
| + {L_NO_GROUPS_P} + | +