1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-22 08:13:14 +02:00

[ticket/10411] Use new teampage and legend class in ACP and memberlist

PHPBB3-10411
This commit is contained in:
Joas Schilling
2012-11-13 15:32:35 +01:00
parent 53cb148d70
commit 6a27a95f30
4 changed files with 184 additions and 56 deletions

View File

@@ -71,12 +71,23 @@ switch ($mode)
$page_title = $user->lang['THE_TEAM'];
$template_html = 'memberlist_leaders.html';
$sql = 'SELECT *
FROM ' . TEAMPAGE_TABLE . '
ORDER BY teampage_position ASC';
$result = $db->sql_query($sql, 3600);
$teampage_data = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
$sql_ary = array(
'SELECT' => 'g.group_id, g.group_name, g.group_colour, g.group_type, g.group_teampage, ug.user_id as ug_user_id',
'SELECT' => 'g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id, t.teampage_id',
'FROM' => array(GROUPS_TABLE => 'g'),
'LEFT_JOIN' => array(
array(
'FROM' => array(TEAMPAGE_TABLE => 't'),
'ON' => 't.group_id = g.group_id',
),
array(
'FROM' => array(USER_GROUP_TABLE => 'ug'),
'ON' => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . (int) $user->data['user_id'],
@@ -85,7 +96,7 @@ switch ($mode)
'WHERE' => '',
'ORDER_BY' => 'g.group_teampage ASC',
'ORDER_BY' => '',
);
$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));
@@ -104,7 +115,7 @@ switch ($mode)
$row['u_group'] = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
}
if ($row['group_teampage'])
if ($row['teampage_id'])
{
// Only put groups into the array we want to display.
// We are fetching all groups, to ensure we got all data for default groups.
@@ -204,10 +215,26 @@ switch ($mode)
}
}
foreach ($groups_ary as $group_id => $group_data)
$parent_team = 0;
foreach ($teampage_data as $team_data)
{
if ($group_data['group_teampage'])
// If this team entry has no group, it's a category
if (!$team_data['group_id'])
{
$template->assign_block_vars('group', array(
'GROUP_NAME' => $team_data['teampage_name'],
));
$parent_team = (int) $team_data['teampage_id'];
continue;
}
$group_data = $groups_ary[(int) $team_data['group_id']];
$group_id = (int) $team_data['group_id'];
if (!$team_data['teampage_parent'])
{
// If the group does not have a parent category, we display the groupname as category
$template->assign_block_vars('group', array(
'GROUP_NAME' => $group_data['group_name'],
'GROUP_COLOR' => $group_data['group_colour'],
@@ -223,7 +250,7 @@ switch ($mode)
if (isset($user_ary[$user_id]))
{
$row = $user_ary[$user_id];
if ($config['teampage_memberships'] == 1 && ($group_id != $groups_ary[$row['default_group']]['group_id']) && $groups_ary[$row['default_group']]['group_teampage'])
if ($config['teampage_memberships'] == 1 && ($group_id != $groups_ary[$row['default_group']]['group_id']) && $groups_ary[$row['default_group']]['teampage_id'])
{
// Display users in their primary group, instead of the first group, when it is displayed on the teampage.
continue;