mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-25 11:28:55 +00:00
Merge branch 'ticket/9549' into develop
* ticket/9549: [ticket/9549] Display users in their primary group instead of their first group [ticket/9549] Change default value of "sort legend by group name" to false. [ticket/9549] Fix displaying empty groups [ticket/9549] Fix language strings. [ticket/9549] Only add group to legend/teampage when the checkbox is checked. [ticket/9549] New method move() to move a group more than 1 up/down. [ticket/9549] Fix some minor issues with descriptions and coding-guidelines. [ticket/9549] Throw an error when the given field-name is invalid. [ticket/9549] Make the class non static and extend delete_group function. [ticket/9549] Add template changes for subsilver2. [ticket/9549] Enhance teampage and legend functionality [ticket/9549] Add the module and files for the ACP. [ticket/9549] Update database with the new config values and columns [ticket/9549] Enhance teampage functionality with a new class, group_positions. Conflicts: phpBB/install/database_update.php
This commit is contained in:
commit
448df1cdf5
25 changed files with 1244 additions and 263 deletions
|
@ -70,6 +70,10 @@
|
||||||
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
|
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
|
||||||
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
|
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="group_teampage">{L_GROUP_TEAMPAGE}:</label></dt>
|
||||||
|
<dd><input name="group_teampage" type="checkbox" value="1" class="radio" id="group_teampage"{GROUP_TEAMPAGE} /></dd>
|
||||||
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
|
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
|
||||||
<dd><input name="group_receive_pm" type="checkbox" value="1" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
|
<dd><input name="group_receive_pm" type="checkbox" value="1" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
|
||||||
|
|
158
phpBB/adm/style/acp_groups_position.html
Normal file
158
phpBB/adm/style/acp_groups_position.html
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
<!-- INCLUDE overall_header.html -->
|
||||||
|
|
||||||
|
<a name="maincontent"></a>
|
||||||
|
|
||||||
|
<h1>{L_MANAGE_LEGEND}</h1>
|
||||||
|
|
||||||
|
<form id="legend_settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{L_LEGEND_SETTINGS}</legend>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="legend_sort_groupname">{L_LEGEND_SORT_GROUPNAME}:</label><br /><span>{L_LEGEND_SORT_GROUPNAME_EXPLAIN}</span></dt>
|
||||||
|
<dd>
|
||||||
|
<label><input type="radio" name="legend_sort_groupname" class="radio" value="1"<!-- IF LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
|
<label><input type="radio" name="legend_sort_groupname" class="radio" value="0"<!-- IF not LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p class="submit-buttons">
|
||||||
|
<input class="button1" type="submit" id="submit" name="update" value="{L_SUBMIT}" />
|
||||||
|
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||||
|
<input type="hidden" name="action" value="set_config_legend" />
|
||||||
|
{S_FORM_TOKEN}
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p>{L_LEGEND_EXPLAIN}</p>
|
||||||
|
|
||||||
|
<table cellspacing="1">
|
||||||
|
<col class="col1" /><col class="col2" /><col class="col2" />
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 50%">{L_GROUP}</th>
|
||||||
|
<th>{L_GROUP_TYPE}</th>
|
||||||
|
<th>{L_ACTION}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<!-- BEGIN legend -->
|
||||||
|
<tr>
|
||||||
|
<td><strong{legend.GROUP_COLOUR}>{legend.GROUP_NAME}</strong></td>
|
||||||
|
<td style="text-align: center;">{legend.GROUP_TYPE}</td>
|
||||||
|
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
||||||
|
<!-- IF legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
|
||||||
|
{ICON_MOVE_UP_DISABLED}
|
||||||
|
<a href="{legend.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||||
|
<!-- ELSEIF not legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
|
||||||
|
<a href="{legend.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||||
|
<a href="{legend.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||||
|
<!-- ELSEIF legend.S_LAST_ROW && not legend.S_FIRST_ROW -->
|
||||||
|
<a href="{legend.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||||
|
{ICON_MOVE_DOWN_DISABLED}
|
||||||
|
<!-- ELSE -->
|
||||||
|
{ICON_MOVE_UP_DISABLED}
|
||||||
|
{ICON_MOVE_DOWN_DISABLED}
|
||||||
|
<!-- ENDIF -->
|
||||||
|
<a href="{legend.U_DELETE}">{ICON_DELETE}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- BEGINELSE -->
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="row3">{L_NO_GROUPS_ADDED}</td>
|
||||||
|
</tr>
|
||||||
|
<!-- END legend -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<form id="acp_groups" method="post" action="{U_ACTION_LEGEND}">
|
||||||
|
<fieldset class="quick">
|
||||||
|
<select name="g"><option value="0">{L_SELECT_GROUP}</option>{S_GROUP_SELECT_LEGEND}</select>
|
||||||
|
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
|
||||||
|
<input type="hidden" name="action" value="add" />
|
||||||
|
{S_FORM_TOKEN}
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<h1>{L_MANAGE_TEAMPAGE}</h1>
|
||||||
|
|
||||||
|
<form id="teampage_settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{L_TEAMPAGE_SETTINGS}</legend>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="teampage_multiple">{L_TEAMPAGE_MULTIPLE}:</label><br /><span>{L_TEAMPAGE_MULTIPLE_EXPLAIN}</span></dt>
|
||||||
|
<dd>
|
||||||
|
<label><input type="radio" name="teampage_multiple" class="radio" value="1"<!-- IF DISPLAY_MULTIPLE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
|
<label><input type="radio" name="teampage_multiple" class="radio" value="0"<!-- IF not DISPLAY_MULTIPLE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="teampage_forums">{L_TEAMPAGE_FORUMS}:</label><br /><span>{L_TEAMPAGE_FORUMS_EXPLAIN}</span></dt>
|
||||||
|
<dd>
|
||||||
|
<label><input type="radio" name="teampage_forums" class="radio" value="1"<!-- IF DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
|
<label><input type="radio" name="teampage_forums" class="radio" value="0"<!-- IF not DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p class="submit-buttons">
|
||||||
|
<input class="button1" type="submit" id="submit" name="update" value="{L_SUBMIT}" />
|
||||||
|
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||||
|
<input type="hidden" name="action" value="set_config_teampage" />
|
||||||
|
{S_FORM_TOKEN}
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p>{L_TEAMPAGE_EXPLAIN}</p>
|
||||||
|
|
||||||
|
<table cellspacing="1">
|
||||||
|
<col class="col1" /><col class="col2" /><col class="col2" />
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 50%">{L_GROUP}</th>
|
||||||
|
<th>{L_GROUP_TYPE}</th>
|
||||||
|
<th>{L_ACTION}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<!-- BEGIN teampage -->
|
||||||
|
<tr>
|
||||||
|
<td><strong{teampage.GROUP_COLOUR}>{teampage.GROUP_NAME}</strong></td>
|
||||||
|
<td style="text-align: center;">{teampage.GROUP_TYPE}</td>
|
||||||
|
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
||||||
|
<!-- IF teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
|
||||||
|
{ICON_MOVE_UP_DISABLED}
|
||||||
|
<a href="{teampage.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||||
|
<!-- ELSEIF not teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
|
||||||
|
<a href="{teampage.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||||
|
<a href="{teampage.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||||
|
<!-- ELSEIF teampage.S_LAST_ROW && not teampage.S_FIRST_ROW -->
|
||||||
|
<a href="{teampage.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||||
|
{ICON_MOVE_DOWN_DISABLED}
|
||||||
|
<!-- ELSE -->
|
||||||
|
{ICON_MOVE_UP_DISABLED}
|
||||||
|
{ICON_MOVE_DOWN_DISABLED}
|
||||||
|
<!-- ENDIF -->
|
||||||
|
<a href="{teampage.U_DELETE}">{ICON_DELETE}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- BEGINELSE -->
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="row3">{L_NO_GROUPS_ADDED}</td>
|
||||||
|
</tr>
|
||||||
|
<!-- END teampage -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<form id="acp_groups" method="post" action="{U_ACTION_TEAMPAGE}">
|
||||||
|
<fieldset class="quick">
|
||||||
|
<select name="g"><option value="0">{L_SELECT_GROUP}</option>{S_GROUP_SELECT_TEAMPAGE}</select>
|
||||||
|
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
|
||||||
|
<input type="hidden" name="action" value="add" />
|
||||||
|
{S_FORM_TOKEN}
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<!-- INCLUDE overall_footer.html -->
|
|
@ -1146,7 +1146,8 @@ function get_schema_struct()
|
||||||
'group_receive_pm' => array('BOOL', 0),
|
'group_receive_pm' => array('BOOL', 0),
|
||||||
'group_message_limit' => array('UINT', 0),
|
'group_message_limit' => array('UINT', 0),
|
||||||
'group_max_recipients' => array('UINT', 0),
|
'group_max_recipients' => array('UINT', 0),
|
||||||
'group_legend' => array('BOOL', 1),
|
'group_legend' => array('UINT', 0),
|
||||||
|
'group_teampage' => array('UINT', 0),
|
||||||
),
|
),
|
||||||
'PRIMARY_KEY' => 'group_id',
|
'PRIMARY_KEY' => 'group_id',
|
||||||
'KEYS' => array(
|
'KEYS' => array(
|
||||||
|
|
|
@ -35,6 +35,12 @@ class acp_groups
|
||||||
$form_key = 'acp_groups';
|
$form_key = 'acp_groups';
|
||||||
add_form_key($form_key);
|
add_form_key($form_key);
|
||||||
|
|
||||||
|
if ($mode == 'position')
|
||||||
|
{
|
||||||
|
$this->manage_position();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||||
|
|
||||||
// Check and set some common vars
|
// Check and set some common vars
|
||||||
|
@ -306,6 +312,7 @@ class acp_groups
|
||||||
'rank' => request_var('group_rank', 0),
|
'rank' => request_var('group_rank', 0),
|
||||||
'receive_pm' => isset($_REQUEST['group_receive_pm']) ? 1 : 0,
|
'receive_pm' => isset($_REQUEST['group_receive_pm']) ? 1 : 0,
|
||||||
'legend' => isset($_REQUEST['group_legend']) ? 1 : 0,
|
'legend' => isset($_REQUEST['group_legend']) ? 1 : 0,
|
||||||
|
'teampage' => isset($_REQUEST['group_teampage']) ? 1 : 0,
|
||||||
'message_limit' => request_var('group_message_limit', 0),
|
'message_limit' => request_var('group_message_limit', 0),
|
||||||
'max_recipients' => request_var('group_max_recipients', 0),
|
'max_recipients' => request_var('group_max_recipients', 0),
|
||||||
'founder_manage' => 0,
|
'founder_manage' => 0,
|
||||||
|
@ -419,6 +426,7 @@ class acp_groups
|
||||||
'avatar_height' => 'int',
|
'avatar_height' => 'int',
|
||||||
'receive_pm' => 'int',
|
'receive_pm' => 'int',
|
||||||
'legend' => 'int',
|
'legend' => 'int',
|
||||||
|
'teampage' => 'int',
|
||||||
'message_limit' => 'int',
|
'message_limit' => 'int',
|
||||||
'max_recipients'=> 'int',
|
'max_recipients'=> 'int',
|
||||||
'founder_manage'=> 'int',
|
'founder_manage'=> 'int',
|
||||||
|
@ -584,6 +592,7 @@ class acp_groups
|
||||||
'GROUP_RECEIVE_PM' => (isset($group_row['group_receive_pm']) && $group_row['group_receive_pm']) ? ' checked="checked"' : '',
|
'GROUP_RECEIVE_PM' => (isset($group_row['group_receive_pm']) && $group_row['group_receive_pm']) ? ' checked="checked"' : '',
|
||||||
'GROUP_FOUNDER_MANAGE' => (isset($group_row['group_founder_manage']) && $group_row['group_founder_manage']) ? ' checked="checked"' : '',
|
'GROUP_FOUNDER_MANAGE' => (isset($group_row['group_founder_manage']) && $group_row['group_founder_manage']) ? ' checked="checked"' : '',
|
||||||
'GROUP_LEGEND' => (isset($group_row['group_legend']) && $group_row['group_legend']) ? ' checked="checked"' : '',
|
'GROUP_LEGEND' => (isset($group_row['group_legend']) && $group_row['group_legend']) ? ' checked="checked"' : '',
|
||||||
|
'GROUP_TEAMPAGE' => (isset($group_row['group_teampage']) && $group_row['group_teampage']) ? ' checked="checked"' : '',
|
||||||
'GROUP_MESSAGE_LIMIT' => (isset($group_row['group_message_limit'])) ? $group_row['group_message_limit'] : 0,
|
'GROUP_MESSAGE_LIMIT' => (isset($group_row['group_message_limit'])) ? $group_row['group_message_limit'] : 0,
|
||||||
'GROUP_MAX_RECIPIENTS' => (isset($group_row['group_max_recipients'])) ? $group_row['group_max_recipients'] : 0,
|
'GROUP_MAX_RECIPIENTS' => (isset($group_row['group_max_recipients'])) ? $group_row['group_max_recipients'] : 0,
|
||||||
'GROUP_COLOUR' => (isset($group_row['group_colour'])) ? $group_row['group_colour'] : '',
|
'GROUP_COLOUR' => (isset($group_row['group_colour'])) ? $group_row['group_colour'] : '',
|
||||||
|
@ -793,4 +802,122 @@ class acp_groups
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function manage_position()
|
||||||
|
{
|
||||||
|
global $config, $db, $template, $user;
|
||||||
|
|
||||||
|
$this->tpl_name = 'acp_groups_position';
|
||||||
|
$this->page_title = 'ACP_GROUPS_POSITION';
|
||||||
|
|
||||||
|
$field = request_var('field', '');
|
||||||
|
$action = request_var('action', '');
|
||||||
|
$group_id = request_var('g', 0);
|
||||||
|
|
||||||
|
if ($field && !in_array($field, array('legend', 'teampage')))
|
||||||
|
{
|
||||||
|
// Invalid mode
|
||||||
|
trigger_error($user->lang['NO_MODE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
|
}
|
||||||
|
else if ($field)
|
||||||
|
{
|
||||||
|
$group_position = new phpbb_group_positions($db, $field, $this->u_action);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
case 'set_config_legend':
|
||||||
|
set_config('legend_sort_groupname', request_var('legend_sort_groupname', 0));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'set_config_teampage':
|
||||||
|
set_config('teampage_forums', request_var('teampage_forums', 0));
|
||||||
|
set_config('teampage_multiple', request_var('teampage_multiple', 0));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'add':
|
||||||
|
$group_position->add_group($group_id);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'delete':
|
||||||
|
$group_position->delete_group($group_id);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'move_up':
|
||||||
|
$group_position->move_up($group_id);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'move_down':
|
||||||
|
$group_position->move_down($group_id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_legend, group_name ASC';
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$s_group_select_legend = '';
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
|
||||||
|
if ($row['group_legend'])
|
||||||
|
{
|
||||||
|
$template->assign_block_vars('legend', array(
|
||||||
|
'GROUP_NAME' => $group_name,
|
||||||
|
'GROUP_COLOUR' => ($row['group_colour']) ? ' style="color: #' . $row['group_colour'] . '"' : '',
|
||||||
|
'GROUP_TYPE' => $user->lang[phpbb_group_positions::group_type_language($row['group_type'])],
|
||||||
|
|
||||||
|
'U_MOVE_DOWN' => "{$this->u_action}&field=legend&action=move_down&g=" . $row['group_id'],
|
||||||
|
'U_MOVE_UP' => "{$this->u_action}&field=legend&action=move_up&g=" . $row['group_id'],
|
||||||
|
'U_DELETE' => "{$this->u_action}&field=legend&action=delete&g=" . $row['group_id'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$s_group_select_legend .= '<option value="' . (int) $row['group_id'] . '">' . $group_name . '</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_teampage
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_teampage, group_name ASC';
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$s_group_select_teampage = '';
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
|
||||||
|
if ($row['group_teampage'])
|
||||||
|
{
|
||||||
|
$template->assign_block_vars('teampage', array(
|
||||||
|
'GROUP_NAME' => $group_name,
|
||||||
|
'GROUP_COLOUR' => ($row['group_colour']) ? ' style="color: #' . $row['group_colour'] . '"' : '',
|
||||||
|
'GROUP_TYPE' => $user->lang[phpbb_group_positions::group_type_language($row['group_type'])],
|
||||||
|
|
||||||
|
'U_MOVE_DOWN' => "{$this->u_action}&field=teampage&action=move_down&g=" . $row['group_id'],
|
||||||
|
'U_MOVE_UP' => "{$this->u_action}&field=teampage&action=move_up&g=" . $row['group_id'],
|
||||||
|
'U_DELETE' => "{$this->u_action}&field=teampage&action=delete&g=" . $row['group_id'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$s_group_select_teampage .= '<option value="' . (int) $row['group_id'] . '">' . $group_name . '</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$template->assign_vars(array(
|
||||||
|
'U_ACTION' => $this->u_action,
|
||||||
|
'U_ACTION_LEGEND' => $this->u_action . '&field=legend',
|
||||||
|
'U_ACTION_TEAMPAGE' => $this->u_action . '&field=teampage',
|
||||||
|
|
||||||
|
'S_GROUP_SELECT_LEGEND' => $s_group_select_legend,
|
||||||
|
'S_GROUP_SELECT_TEAMPAGE' => $s_group_select_teampage,
|
||||||
|
'DISPLAY_FORUMS' => ($config['teampage_forums']) ? true : false,
|
||||||
|
'DISPLAY_MULTIPLE' => ($config['teampage_multiple']) ? true : false,
|
||||||
|
'LEGEND_SORT_GROUPNAME' => ($config['legend_sort_groupname']) ? true : false,
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ class acp_groups_info
|
||||||
'version' => '1.0.0',
|
'version' => '1.0.0',
|
||||||
'modes' => array(
|
'modes' => array(
|
||||||
'manage' => array('title' => 'ACP_GROUPS_MANAGE', 'auth' => 'acl_a_group', 'cat' => array('ACP_GROUPS')),
|
'manage' => array('title' => 'ACP_GROUPS_MANAGE', 'auth' => 'acl_a_group', 'cat' => array('ACP_GROUPS')),
|
||||||
|
'position' => array('title' => 'ACP_GROUPS_POSITION', 'auth' => 'acl_a_group', 'cat' => array('ACP_GROUPS')),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2457,6 +2457,69 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
|
||||||
|
|
||||||
if (!sizeof($error))
|
if (!sizeof($error))
|
||||||
{
|
{
|
||||||
|
$current_legend = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
$current_teampage = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
|
||||||
|
$legend = new phpbb_group_positions($db, 'legend');
|
||||||
|
$teampage = new phpbb_group_positions($db, 'teampage');
|
||||||
|
if ($group_id)
|
||||||
|
{
|
||||||
|
$current_legend = $legend->get_group_value($group_id);
|
||||||
|
$current_teampage = $teampage->get_group_value($group_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($group_attributes['group_legend']))
|
||||||
|
{
|
||||||
|
if (($group_id && ($current_legend == phpbb_group_positions::GROUP_DISABLED)) || !$group_id)
|
||||||
|
{
|
||||||
|
// Old group currently not in the legend or new group, add at the end.
|
||||||
|
$group_attributes['group_legend'] = 1 + $legend->get_group_count();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Group stayes in the legend
|
||||||
|
$group_attributes['group_legend'] = $current_legend;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($group_id && ($current_legend > phpbb_group_positions::GROUP_DISABLED))
|
||||||
|
{
|
||||||
|
// Group is removed from the legend
|
||||||
|
$legend->delete_group($group_id, true);
|
||||||
|
$group_attributes['group_legend'] = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$group_attributes['group_legend'] = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($group_attributes['group_teampage']))
|
||||||
|
{
|
||||||
|
if (($group_id && ($current_teampage == phpbb_group_positions::GROUP_DISABLED)) || !$group_id)
|
||||||
|
{
|
||||||
|
// Old group currently not on the teampage or new group, add at the end.
|
||||||
|
$group_attributes['group_teampage'] = 1 + $teampage->get_group_count();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Group stayes on the teampage
|
||||||
|
$group_attributes['group_teampage'] = $current_teampage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($group_id && ($current_teampage > phpbb_group_positions::GROUP_DISABLED))
|
||||||
|
{
|
||||||
|
// Group is removed from the teampage
|
||||||
|
$teampage->delete_group($group_id, true);
|
||||||
|
$group_attributes['group_teampage'] = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$group_attributes['group_teampage'] = phpbb_group_positions::GROUP_DISABLED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unset the objects, we don't need them anymore.
|
||||||
|
unset($legend);
|
||||||
|
unset($teampage);
|
||||||
|
|
||||||
$user_ary = array();
|
$user_ary = array();
|
||||||
$sql_ary = array(
|
$sql_ary = array(
|
||||||
'group_name' => (string) $name,
|
'group_name' => (string) $name,
|
||||||
|
@ -2681,6 +2744,14 @@ function group_delete($group_id, $group_name = false)
|
||||||
}
|
}
|
||||||
while ($start);
|
while ($start);
|
||||||
|
|
||||||
|
// Delete group from legend and teampage
|
||||||
|
$legend = new phpbb_group_positions($db, 'legend');
|
||||||
|
$legend->delete_group($group_id);
|
||||||
|
unset($legend);
|
||||||
|
$teampage = new phpbb_group_positions($db, 'teampage');
|
||||||
|
$teampage->delete_group($group_id);
|
||||||
|
unset($teampage);
|
||||||
|
|
||||||
// Delete group
|
// Delete group
|
||||||
$sql = 'DELETE FROM ' . GROUPS_TABLE . "
|
$sql = 'DELETE FROM ' . GROUPS_TABLE . "
|
||||||
WHERE group_id = $group_id";
|
WHERE group_id = $group_id";
|
||||||
|
|
261
phpBB/includes/group_positions.php
Normal file
261
phpBB/includes/group_positions.php
Normal file
|
@ -0,0 +1,261 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package phpBB3
|
||||||
|
* @copyright (c) 2011 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('IN_PHPBB'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group Position class, containing all functions to manage the groups in the teampage and legend.
|
||||||
|
*
|
||||||
|
* group_teampage/group_legend is an ascending list 1, 2, ..., n for groups which are displayed. 1 is the first group, n the last.
|
||||||
|
* If the value is 0 (self::GROUP_DISABLED) the group is not displayed.
|
||||||
|
* @package phpBB3
|
||||||
|
*/
|
||||||
|
class phpbb_group_positions
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Group is not displayed
|
||||||
|
*/
|
||||||
|
const GROUP_DISABLED = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* phpbb-database object
|
||||||
|
*/
|
||||||
|
public $db = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the field we want to handle: either 'teampage' or 'legend'
|
||||||
|
*/
|
||||||
|
private $field = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URI for the adm_back_link when there was an error.
|
||||||
|
*/
|
||||||
|
private $adm_back_link = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
public function __construct ($db, $field, $adm_back_link = '')
|
||||||
|
{
|
||||||
|
$this->adm_back_link = $adm_back_link;
|
||||||
|
|
||||||
|
if (!in_array($field, array('teampage', 'legend')))
|
||||||
|
{
|
||||||
|
$this->error('NO_MODE');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db = $db;
|
||||||
|
$this->field = $field;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the group_{$this->field} for a given group, if the group exists.
|
||||||
|
* @param int $group_id group_id of the group to be selected
|
||||||
|
* @return int position of the group
|
||||||
|
*/
|
||||||
|
public function get_group_value($group_id)
|
||||||
|
{
|
||||||
|
$sql = 'SELECT group_' . $this->field . '
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
WHERE group_id = ' . (int) $group_id;
|
||||||
|
$result = $this->db->sql_query($sql);
|
||||||
|
$current_value = $this->db->sql_fetchfield('group_' . $this->field);
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if ($current_value === false)
|
||||||
|
{
|
||||||
|
// Group not found.
|
||||||
|
$this->error('NO_GROUP');
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) $current_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get number of groups, displayed on the teampage/legend
|
||||||
|
*
|
||||||
|
* @return int value of the last group displayed
|
||||||
|
*/
|
||||||
|
public function get_group_count()
|
||||||
|
{
|
||||||
|
$sql = 'SELECT group_' . $this->field . '
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_' . $this->field . ' DESC';
|
||||||
|
$result = $this->db->sql_query_limit($sql, 1);
|
||||||
|
$group_count = (int) $this->db->sql_fetchfield('group_' . $this->field);
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
return $group_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Addes a group by group_id
|
||||||
|
*
|
||||||
|
* @param int $group_id group_id of the group to be added
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function add_group($group_id)
|
||||||
|
{
|
||||||
|
$current_value = $this->get_group_value($group_id);
|
||||||
|
|
||||||
|
if ($current_value == self::GROUP_DISABLED)
|
||||||
|
{
|
||||||
|
// Group is currently not displayed, add it at the end.
|
||||||
|
$next_value = 1 + $this->get_group_count();
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_' . $this->field . ' = ' . $next_value . '
|
||||||
|
WHERE group_' . $this->field . ' = ' . self::GROUP_DISABLED . '
|
||||||
|
AND group_id = ' . (int) $group_id;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes a group by setting the field to self::GROUP_DISABLED and closing the gap in the list.
|
||||||
|
*
|
||||||
|
* @param int $group_id group_id of the group to be deleted
|
||||||
|
* @param bool $skip_group Skip setting the group to GROUP_DISABLED, to save the query, when you need to update it anyway.
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function delete_group($group_id, $skip_group = false)
|
||||||
|
{
|
||||||
|
$current_value = $this->get_group_value($group_id);
|
||||||
|
|
||||||
|
if ($current_value != self::GROUP_DISABLED)
|
||||||
|
{
|
||||||
|
$this->db->sql_transaction('begin');
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_' . $this->field . ' = group_' . $this->field . ' - 1
|
||||||
|
WHERE group_' . $this->field . ' > ' . $current_value;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
|
if (!$skip_group)
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_' . $this->field . ' = ' . self::GROUP_DISABLED . '
|
||||||
|
WHERE group_id = ' . (int) $group_id;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->sql_transaction('commit');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves a group up by group_id
|
||||||
|
*
|
||||||
|
* @param int $group_id group_id of the group to be moved
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function move_up($group_id)
|
||||||
|
{
|
||||||
|
$this->move($group_id, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves a group down by group_id
|
||||||
|
*
|
||||||
|
* @param int $group_id group_id of the group to be moved
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function move_down($group_id)
|
||||||
|
{
|
||||||
|
$this->move($group_id, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves a group up/down
|
||||||
|
*
|
||||||
|
* @param int $group_id group_id of the group to be moved
|
||||||
|
* @param int $delta number of steps:
|
||||||
|
* - positive = move up
|
||||||
|
* - negative = move down
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function move($group_id, $delta)
|
||||||
|
{
|
||||||
|
if (!is_int($delta) || !$delta)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$move_up = ($delta > 0) ? true : false;
|
||||||
|
$current_value = $this->get_group_value($group_id);
|
||||||
|
|
||||||
|
if ($current_value != self::GROUP_DISABLED)
|
||||||
|
{
|
||||||
|
$this->db->sql_transaction('begin');
|
||||||
|
|
||||||
|
// First we move all groups between our current value and the target value up/down 1,
|
||||||
|
// so we have a gap for our group to move.
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_' . $this->field . ' = group_' . $this->field . (($move_up) ? ' + 1' : ' - 1') . '
|
||||||
|
WHERE group_' . $this->field . ' > ' . self::GROUP_DISABLED . '
|
||||||
|
AND group_' . $this->field . (($move_up) ? ' >= ' : ' <= ') . ($current_value - $delta) . '
|
||||||
|
AND group_' . $this->field . (($move_up) ? ' < ' : ' > ') . $current_value;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
|
// Because there might be fewer groups above/below the group than we wanted to move,
|
||||||
|
// we use the number of changed groups, to update the group.
|
||||||
|
$delta = (int) $this->db->sql_affectedrows();
|
||||||
|
|
||||||
|
if ($delta)
|
||||||
|
{
|
||||||
|
// And now finally, when we moved some other groups and built a gap,
|
||||||
|
// we can move the desired group to it.
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_' . $this->field . ' = group_' . $this->field . (($move_up) ? ' - ' : ' + ') . $delta . '
|
||||||
|
WHERE group_id = ' . (int) $group_id;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->sql_transaction('commit');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get group type language var
|
||||||
|
*
|
||||||
|
* @param int $group_type group_type from the groups-table
|
||||||
|
* @return string name of the language variable for the given group-type.
|
||||||
|
*/
|
||||||
|
static public function group_type_language($group_type)
|
||||||
|
{
|
||||||
|
switch ($group_type)
|
||||||
|
{
|
||||||
|
case GROUP_OPEN:
|
||||||
|
return 'GROUP_REQUEST';
|
||||||
|
case GROUP_CLOSED:
|
||||||
|
return 'GROUP_CLOSED';
|
||||||
|
case GROUP_HIDDEN:
|
||||||
|
return 'GROUP_HIDDEN';
|
||||||
|
case GROUP_SPECIAL:
|
||||||
|
return 'GROUP_SPECIAL';
|
||||||
|
case GROUP_FREE:
|
||||||
|
return 'GROUP_OPEN';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error
|
||||||
|
*/
|
||||||
|
public function error($message)
|
||||||
|
{
|
||||||
|
global $user;
|
||||||
|
trigger_error($user->lang[$message] . (($this->adm_back_link) ? adm_back_link($this->adm_back_link) : ''), E_USER_WARNING);
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,17 +36,18 @@ $l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER'
|
||||||
$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
|
$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
|
||||||
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';
|
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';
|
||||||
|
|
||||||
|
$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
|
||||||
// Grab group details for legend display
|
// Grab group details for legend display
|
||||||
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
|
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
|
||||||
{
|
{
|
||||||
$sql = 'SELECT group_id, group_name, group_colour, group_type
|
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
|
||||||
FROM ' . GROUPS_TABLE . '
|
FROM ' . GROUPS_TABLE . '
|
||||||
WHERE group_legend = 1
|
WHERE group_legend > 0
|
||||||
ORDER BY group_name ASC';
|
ORDER BY ' . $order_legend . ' ASC';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
|
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend
|
||||||
FROM ' . GROUPS_TABLE . ' g
|
FROM ' . GROUPS_TABLE . ' g
|
||||||
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
|
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
|
||||||
ON (
|
ON (
|
||||||
|
@ -54,9 +55,9 @@ else
|
||||||
AND ug.user_id = ' . $user->data['user_id'] . '
|
AND ug.user_id = ' . $user->data['user_id'] . '
|
||||||
AND ug.user_pending = 0
|
AND ug.user_pending = 0
|
||||||
)
|
)
|
||||||
WHERE g.group_legend = 1
|
WHERE g.group_legend > 0
|
||||||
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
|
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
|
||||||
ORDER BY g.group_name ASC';
|
ORDER BY g.' . $order_legend . ' ASC';
|
||||||
}
|
}
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
|
|
@ -930,8 +930,19 @@ function database_update_info()
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
// No changes from 3.1.0-dev to 3.1.0-A1
|
// Changes from 3.1.0-dev to 3.1.0-A1
|
||||||
'3.1.0-dev' => array(),
|
'3.1.0-dev' => array(
|
||||||
|
'add_columns' => array(
|
||||||
|
GROUPS_TABLE => array(
|
||||||
|
'group_teampage' => array('UINT', 0, 'after' => 'group_legend'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'change_columns' => array(
|
||||||
|
GROUPS_TABLE => array(
|
||||||
|
'group_legend' => array('UINT', 0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1902,6 +1913,56 @@ function change_database_data(&$no_updates, $version)
|
||||||
// Changes from 3.1.0-dev to 3.1.0-A1
|
// Changes from 3.1.0-dev to 3.1.0-A1
|
||||||
case '3.1.0-dev':
|
case '3.1.0-dev':
|
||||||
set_config('use_system_cron', 0);
|
set_config('use_system_cron', 0);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_teampage = 1
|
||||||
|
WHERE group_type = ' . GROUP_SPECIAL . "
|
||||||
|
AND group_name = 'ADMINISTRATORS'";
|
||||||
|
_sql($sql, $errored, $error_ary);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_teampage = 2
|
||||||
|
WHERE group_type = ' . GROUP_SPECIAL . "
|
||||||
|
AND group_name = 'GLOBAL_MODERATORS'";
|
||||||
|
_sql($sql, $errored, $error_ary);
|
||||||
|
|
||||||
|
set_config('legend_sort_groupname', '0');
|
||||||
|
set_config('teampage_multiple', '1');
|
||||||
|
set_config('teampage_forums', '1');
|
||||||
|
|
||||||
|
$sql = 'SELECT group_id
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
WHERE group_legend = 1
|
||||||
|
ORDER BY group_name ASC';
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$next_legend = 1;
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . GROUPS_TABLE . '
|
||||||
|
SET group_legend = ' . $next_legend . '
|
||||||
|
WHERE group_id = ' . (int) $row['group_id'];
|
||||||
|
_sql($sql, $errored, $error_ary);
|
||||||
|
|
||||||
|
$next_legend++;
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
unset($next_legend);
|
||||||
|
|
||||||
|
// Install modules
|
||||||
|
$modules_to_install = array(
|
||||||
|
'position' => array(
|
||||||
|
'base' => 'groups',
|
||||||
|
'class' => 'acp',
|
||||||
|
'title' => 'ACP_GROUPS_POSITION',
|
||||||
|
'auth' => 'acl_a_group',
|
||||||
|
'cat' => 'ACP_GROUPS',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
_add_modules($modules_to_install);
|
||||||
|
|
||||||
|
$no_updates = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -444,7 +444,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm INTEGER DEFAULT 0 NOT NULL,
|
group_receive_pm INTEGER DEFAULT 0 NOT NULL,
|
||||||
group_message_limit INTEGER DEFAULT 0 NOT NULL,
|
group_message_limit INTEGER DEFAULT 0 NOT NULL,
|
||||||
group_max_recipients INTEGER DEFAULT 0 NOT NULL,
|
group_max_recipients INTEGER DEFAULT 0 NOT NULL,
|
||||||
group_legend INTEGER DEFAULT 1 NOT NULL
|
group_legend INTEGER DEFAULT 0 NOT NULL,
|
||||||
|
group_teampage INTEGER DEFAULT 0 NOT NULL
|
||||||
);;
|
);;
|
||||||
|
|
||||||
ALTER TABLE phpbb_groups ADD PRIMARY KEY (group_id);;
|
ALTER TABLE phpbb_groups ADD PRIMARY KEY (group_id);;
|
||||||
|
|
|
@ -546,7 +546,8 @@ CREATE TABLE [phpbb_groups] (
|
||||||
[group_receive_pm] [int] DEFAULT (0) NOT NULL ,
|
[group_receive_pm] [int] DEFAULT (0) NOT NULL ,
|
||||||
[group_message_limit] [int] DEFAULT (0) NOT NULL ,
|
[group_message_limit] [int] DEFAULT (0) NOT NULL ,
|
||||||
[group_max_recipients] [int] DEFAULT (0) NOT NULL ,
|
[group_max_recipients] [int] DEFAULT (0) NOT NULL ,
|
||||||
[group_legend] [int] DEFAULT (1) NOT NULL
|
[group_legend] [int] DEFAULT (0) NOT NULL ,
|
||||||
|
[group_teampage] [int] DEFAULT (0) NOT NULL
|
||||||
) ON [PRIMARY]
|
) ON [PRIMARY]
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
|
@ -316,7 +316,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
group_receive_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_legend tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
|
group_legend mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
|
group_teampage mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
PRIMARY KEY (group_id),
|
PRIMARY KEY (group_id),
|
||||||
KEY group_legend_name (group_legend, group_name(255))
|
KEY group_legend_name (group_legend, group_name(255))
|
||||||
);
|
);
|
||||||
|
|
|
@ -316,7 +316,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
group_receive_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
group_legend tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
|
group_legend mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
|
group_teampage mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
|
||||||
PRIMARY KEY (group_id),
|
PRIMARY KEY (group_id),
|
||||||
KEY group_legend_name (group_legend, group_name)
|
KEY group_legend_name (group_legend, group_name)
|
||||||
) CHARACTER SET `utf8` COLLATE `utf8_bin`;
|
) CHARACTER SET `utf8` COLLATE `utf8_bin`;
|
||||||
|
|
|
@ -605,7 +605,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm number(1) DEFAULT '0' NOT NULL,
|
group_receive_pm number(1) DEFAULT '0' NOT NULL,
|
||||||
group_message_limit number(8) DEFAULT '0' NOT NULL,
|
group_message_limit number(8) DEFAULT '0' NOT NULL,
|
||||||
group_max_recipients number(8) DEFAULT '0' NOT NULL,
|
group_max_recipients number(8) DEFAULT '0' NOT NULL,
|
||||||
group_legend number(1) DEFAULT '1' NOT NULL,
|
group_legend number(8) DEFAULT '0' NOT NULL,
|
||||||
|
group_teampage number(8) DEFAULT '0' NOT NULL,
|
||||||
CONSTRAINT pk_phpbb_groups PRIMARY KEY (group_id)
|
CONSTRAINT pk_phpbb_groups PRIMARY KEY (group_id)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
|
|
|
@ -459,7 +459,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm INT2 DEFAULT '0' NOT NULL CHECK (group_receive_pm >= 0),
|
group_receive_pm INT2 DEFAULT '0' NOT NULL CHECK (group_receive_pm >= 0),
|
||||||
group_message_limit INT4 DEFAULT '0' NOT NULL CHECK (group_message_limit >= 0),
|
group_message_limit INT4 DEFAULT '0' NOT NULL CHECK (group_message_limit >= 0),
|
||||||
group_max_recipients INT4 DEFAULT '0' NOT NULL CHECK (group_max_recipients >= 0),
|
group_max_recipients INT4 DEFAULT '0' NOT NULL CHECK (group_max_recipients >= 0),
|
||||||
group_legend INT2 DEFAULT '1' NOT NULL CHECK (group_legend >= 0),
|
group_legend INT4 DEFAULT '0' NOT NULL CHECK (group_legend >= 0),
|
||||||
|
group_teampage INT4 DEFAULT '0' NOT NULL CHECK (group_teampage >= 0),
|
||||||
PRIMARY KEY (group_id)
|
PRIMARY KEY (group_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -151,6 +151,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_server', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_uid', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_uid', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_user', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_user', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_user_filter', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_user_filter', '');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('legend_sort_groupname', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_load', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_load', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_search_load', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_search_load', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_anon_lastread', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_anon_lastread', '0');
|
||||||
|
@ -238,6 +239,8 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_host', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_password', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_password', '');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_port', '25');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_port', '25');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_username', '');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('smtp_username', '');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('teampage_multiple', '1');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('teampage_forums', '1');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page', '25');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page', '25');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
|
||||||
|
@ -520,13 +523,13 @@ INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_reg
|
||||||
INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd) VALUES (3, 5, 'Admin', 'admin', 0, '21232f297a57a5a743894a0e4a801fc3', 'admin@yourdomain.com', 'en', 1, 1, 'AA0000', 1, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd) VALUES (3, 5, 'Admin', 'admin', 0, '21232f297a57a5a743894a0e4a801fc3', 'admin@yourdomain.com', 'en', 1, 1, 'AA0000', 1, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
||||||
|
|
||||||
# -- Groups
|
# -- Groups
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('GUESTS', 3, 0, '', 0, '', '', '', 5);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('GUESTS', 3, 0, '', 0, 0, '', '', '', 5);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('REGISTERED', 3, 0, '', 0, '', '', '', 5);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('REGISTERED', 3, 0, '', 0, 0, '', '', '', 5);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('REGISTERED_COPPA', 3, 0, '', 0, '', '', '', 5);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('REGISTERED_COPPA', 3, 0, '', 0, 0, '', '', '', 5);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('GLOBAL_MODERATORS', 3, 0, '00AA00', 1, '', '', '', 0);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('GLOBAL_MODERATORS', 3, 0, '00AA00', 2, 2, '', '', '', 0);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('ADMINISTRATORS', 3, 1, 'AA0000', 1, '', '', '', 0);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('ADMINISTRATORS', 3, 1, 'AA0000', 1, 1, '', '', '', 0);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('BOTS', 3, 0, '9E8DA7', 0, '', '', '', 5);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('BOTS', 3, 0, '9E8DA7', 0, 0, '', '', '', 5);
|
||||||
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('NEWLY_REGISTERED', 3, 0, '', 0, '', '', '', 5);
|
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_teampage, group_avatar, group_desc, group_desc_uid, group_max_recipients) VALUES ('NEWLY_REGISTERED', 3, 0, '', 0, 0, '', '', '', 5);
|
||||||
|
|
||||||
# -- User -> Group
|
# -- User -> Group
|
||||||
INSERT INTO phpbb_user_group (group_id, user_id, user_pending, group_leader) VALUES (1, 1, 0, 0);
|
INSERT INTO phpbb_user_group (group_id, user_id, user_pending, group_leader) VALUES (1, 1, 0, 0);
|
||||||
|
|
|
@ -308,7 +308,8 @@ CREATE TABLE phpbb_groups (
|
||||||
group_receive_pm INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
group_receive_pm INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||||
group_message_limit INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
group_message_limit INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||||
group_max_recipients INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
group_max_recipients INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||||
group_legend INTEGER UNSIGNED NOT NULL DEFAULT '1'
|
group_legend INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||||
|
group_teampage INTEGER UNSIGNED NOT NULL DEFAULT '0'
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX phpbb_groups_group_legend_name ON phpbb_groups (group_legend, group_name);
|
CREATE INDEX phpbb_groups_group_legend_name ON phpbb_groups (group_legend, group_name);
|
||||||
|
|
|
@ -100,6 +100,7 @@ $lang = array_merge($lang, array(
|
||||||
'ACP_GROUPS_MANAGE' => 'Manage groups',
|
'ACP_GROUPS_MANAGE' => 'Manage groups',
|
||||||
'ACP_GROUPS_MANAGEMENT' => 'Group management',
|
'ACP_GROUPS_MANAGEMENT' => 'Group management',
|
||||||
'ACP_GROUPS_PERMISSIONS' => 'Groups’ permissions',
|
'ACP_GROUPS_PERMISSIONS' => 'Groups’ permissions',
|
||||||
|
'ACP_GROUPS_POSITION' => 'Manage group positions',
|
||||||
|
|
||||||
'ACP_ICONS' => 'Topic icons',
|
'ACP_ICONS' => 'Topic icons',
|
||||||
'ACP_ICONS_SMILIES' => 'Topic icons/smilies',
|
'ACP_ICONS_SMILIES' => 'Topic icons/smilies',
|
||||||
|
|
|
@ -97,6 +97,8 @@ $lang = array_merge($lang, array(
|
||||||
'GROUP_SETTINGS_SAVE' => 'Group wide settings',
|
'GROUP_SETTINGS_SAVE' => 'Group wide settings',
|
||||||
'GROUP_SKIP_AUTH' => 'Exempt group leader from permissions',
|
'GROUP_SKIP_AUTH' => 'Exempt group leader from permissions',
|
||||||
'GROUP_SKIP_AUTH_EXPLAIN' => 'If enabled group leader no longer inherit permissions from the group.',
|
'GROUP_SKIP_AUTH_EXPLAIN' => 'If enabled group leader no longer inherit permissions from the group.',
|
||||||
|
'GROUP_SPECIAL' => 'Pre-defined',
|
||||||
|
'GROUP_TEAMPAGE' => 'Display group on teampage',
|
||||||
'GROUP_TYPE' => 'Group type',
|
'GROUP_TYPE' => 'Group type',
|
||||||
'GROUP_TYPE_EXPLAIN' => 'This determines which users can join or view this group.',
|
'GROUP_TYPE_EXPLAIN' => 'This determines which users can join or view this group.',
|
||||||
'GROUP_UPDATED' => 'Group preferences updated successfully.',
|
'GROUP_UPDATED' => 'Group preferences updated successfully.',
|
||||||
|
@ -105,19 +107,34 @@ $lang = array_merge($lang, array(
|
||||||
'GROUP_USERS_EXIST' => 'The selected users are already members.',
|
'GROUP_USERS_EXIST' => 'The selected users are already members.',
|
||||||
'GROUP_USERS_REMOVE' => 'Users removed from group and new defaults set successfully.',
|
'GROUP_USERS_REMOVE' => 'Users removed from group and new defaults set successfully.',
|
||||||
|
|
||||||
|
'LEGEND_EXPLAIN' => 'These are the groups which are displayed in the group legend:',
|
||||||
|
'LEGEND_SETTINGS' => 'Legend settings',
|
||||||
|
'LEGEND_SORT_GROUPNAME' => 'Sort legend by group name',
|
||||||
|
'LEGEND_SORT_GROUPNAME_EXPLAIN' => 'The order below is ignored when this option is enabled.',
|
||||||
|
|
||||||
|
'MANAGE_LEGEND' => 'Manage group legend',
|
||||||
|
'MANAGE_TEAMPAGE' => 'Manage teampage',
|
||||||
'MAKE_DEFAULT_FOR_ALL' => 'Make default group for every member',
|
'MAKE_DEFAULT_FOR_ALL' => 'Make default group for every member',
|
||||||
'MEMBERS' => 'Members',
|
'MEMBERS' => 'Members',
|
||||||
|
|
||||||
'NO_GROUP' => 'No group specified.',
|
'NO_GROUP' => 'No group specified.',
|
||||||
|
'NO_GROUPS_ADDED' => 'No groups added yet.',
|
||||||
'NO_GROUPS_CREATED' => 'No groups created yet.',
|
'NO_GROUPS_CREATED' => 'No groups created yet.',
|
||||||
'NO_PERMISSIONS' => 'Do not copy permissions',
|
'NO_PERMISSIONS' => 'Do not copy permissions',
|
||||||
'NO_USERS' => 'You haven’t entered any users.',
|
'NO_USERS' => 'You haven’t entered any users.',
|
||||||
'NO_USERS_ADDED' => 'No users were added to the group.',
|
'NO_USERS_ADDED' => 'No users were added to the group.',
|
||||||
'NO_VALID_USERS' => 'You haven’t entered any users eligible for that action.',
|
'NO_VALID_USERS' => 'You haven’t entered any users eligible for that action.',
|
||||||
|
|
||||||
|
'SELECT_GROUP' => 'Select a group',
|
||||||
'SPECIAL_GROUPS' => 'Pre-defined groups',
|
'SPECIAL_GROUPS' => 'Pre-defined groups',
|
||||||
'SPECIAL_GROUPS_EXPLAIN' => 'Pre-defined groups are special groups, they cannot be deleted or directly modified. However you can still add users and alter basic settings.',
|
'SPECIAL_GROUPS_EXPLAIN' => 'Pre-defined groups are special groups, they cannot be deleted or directly modified. However you can still add users and alter basic settings.',
|
||||||
|
|
||||||
|
'TEAMPAGE_EXPLAIN' => 'These are the groups which are displayed on the teampage:',
|
||||||
|
'TEAMPAGE_FORUMS' => 'Display moderated forums',
|
||||||
|
'TEAMPAGE_FORUMS_EXPLAIN' => 'If set to yes, moderators will have a list with all of the forums where they have moderator permissions displayed in their row. This can be very database intensive for big boards.',
|
||||||
|
'TEAMPAGE_MULTIPLE' => 'Display users in all groups',
|
||||||
|
'TEAMPAGE_MULTIPLE_EXPLAIN' => 'If set to no, the users will only be displayed in their primary group (If the primary group is not listed, the users will be displayed in their first displayed group).',
|
||||||
|
'TEAMPAGE_SETTINGS' => 'Teampage settings',
|
||||||
'TOTAL_MEMBERS' => 'Members',
|
'TOTAL_MEMBERS' => 'Members',
|
||||||
|
|
||||||
'USERS_APPROVED' => 'Users approved successfully.',
|
'USERS_APPROVED' => 'Users approved successfully.',
|
||||||
|
|
|
@ -77,189 +77,196 @@ switch ($mode)
|
||||||
$page_title = $user->lang['THE_TEAM'];
|
$page_title = $user->lang['THE_TEAM'];
|
||||||
$template_html = 'memberlist_leaders.html';
|
$template_html = 'memberlist_leaders.html';
|
||||||
|
|
||||||
$user_ary = $auth->acl_get_list(false, array('a_', 'm_'), false);
|
$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',
|
||||||
|
|
||||||
$admin_id_ary = $global_mod_id_ary = $mod_id_ary = $forum_id_ary = array();
|
'FROM' => array(GROUPS_TABLE => 'g'),
|
||||||
foreach ($user_ary as $forum_id => $forum_ary)
|
|
||||||
{
|
|
||||||
foreach ($forum_ary as $auth_option => $id_ary)
|
|
||||||
{
|
|
||||||
if (!$forum_id)
|
|
||||||
{
|
|
||||||
if ($auth_option == 'a_')
|
|
||||||
{
|
|
||||||
$admin_id_ary = array_merge($admin_id_ary, $id_ary);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$global_mod_id_ary = array_merge($global_mod_id_ary, $id_ary);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$mod_id_ary = array_merge($mod_id_ary, $id_ary);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($forum_id)
|
|
||||||
{
|
|
||||||
foreach ($id_ary as $id)
|
|
||||||
{
|
|
||||||
$forum_id_ary[$id][] = $forum_id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$admin_id_ary = array_unique($admin_id_ary);
|
|
||||||
$global_mod_id_ary = array_unique($global_mod_id_ary);
|
|
||||||
|
|
||||||
$mod_id_ary = array_merge($mod_id_ary, $global_mod_id_ary);
|
|
||||||
$mod_id_ary = array_unique($mod_id_ary);
|
|
||||||
|
|
||||||
// Admin group id...
|
|
||||||
$sql = 'SELECT group_id
|
|
||||||
FROM ' . GROUPS_TABLE . "
|
|
||||||
WHERE group_name = 'ADMINISTRATORS'";
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
$admin_group_id = (int) $db->sql_fetchfield('group_id');
|
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
// Get group memberships for the admin id ary...
|
|
||||||
$admin_memberships = group_memberships($admin_group_id, $admin_id_ary);
|
|
||||||
|
|
||||||
$admin_user_ids = array();
|
|
||||||
|
|
||||||
if (!empty($admin_memberships))
|
|
||||||
{
|
|
||||||
// ok, we only need the user ids...
|
|
||||||
foreach ($admin_memberships as $row)
|
|
||||||
{
|
|
||||||
$admin_user_ids[$row['user_id']] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unset($admin_memberships);
|
|
||||||
|
|
||||||
$sql = 'SELECT forum_id, forum_name
|
|
||||||
FROM ' . FORUMS_TABLE;
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
$forums = array();
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
|
||||||
{
|
|
||||||
$forums[$row['forum_id']] = $row['forum_name'];
|
|
||||||
}
|
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
$sql = $db->sql_build_query('SELECT', array(
|
|
||||||
'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id',
|
|
||||||
|
|
||||||
'FROM' => array(
|
|
||||||
USERS_TABLE => 'u',
|
|
||||||
GROUPS_TABLE => 'g'
|
|
||||||
),
|
|
||||||
|
|
||||||
'LEFT_JOIN' => array(
|
'LEFT_JOIN' => array(
|
||||||
array(
|
array(
|
||||||
'FROM' => array(USER_GROUP_TABLE => 'ug'),
|
'FROM' => array(USER_GROUP_TABLE => 'ug'),
|
||||||
'ON' => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id']
|
'ON' => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . (int) $user->data['user_id'],
|
||||||
)
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
'WHERE' => $db->sql_in_set('u.user_id', array_unique(array_merge($admin_id_ary, $mod_id_ary)), false, true) . '
|
'WHERE' => '',
|
||||||
AND u.group_id = g.group_id',
|
|
||||||
|
|
||||||
'ORDER_BY' => 'g.group_name ASC, u.username_clean ASC'
|
'ORDER_BY' => 'g.group_teampage ASC',
|
||||||
));
|
);
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
|
$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));
|
||||||
|
|
||||||
|
$group_ids = $groups_ary = array();
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$which_row = (in_array($row['user_id'], $admin_id_ary)) ? 'admin' : 'mod';
|
if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $row['ug_user_id'] != $user->data['user_id'])
|
||||||
|
|
||||||
// We sort out admins not within the 'Administrators' group.
|
|
||||||
// Else, we will list those as admin only having the permission to view logs for example.
|
|
||||||
if ($which_row == 'admin' && empty($admin_user_ids[$row['user_id']]))
|
|
||||||
{
|
{
|
||||||
// Remove from admin_id_ary, because the user may be a mod instead
|
$row['group_name'] = $user->lang['GROUP_UNDISCLOSED'];
|
||||||
unset($admin_id_ary[array_search($row['user_id'], $admin_id_ary)]);
|
$row['u_group'] = '';
|
||||||
|
}
|
||||||
if (!in_array($row['user_id'], $mod_id_ary) && !in_array($row['user_id'], $global_mod_id_ary))
|
else
|
||||||
{
|
{
|
||||||
continue;
|
$row['group_name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
|
||||||
}
|
$row['u_group'] = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
|
||||||
else
|
|
||||||
{
|
|
||||||
$which_row = 'mod';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$s_forum_select = '';
|
if ($row['group_teampage'])
|
||||||
$undisclosed_forum = false;
|
|
||||||
|
|
||||||
if (isset($forum_id_ary[$row['user_id']]) && !in_array($row['user_id'], $global_mod_id_ary))
|
|
||||||
{
|
{
|
||||||
if ($which_row == 'mod' && sizeof(array_diff(array_keys($forums), $forum_id_ary[$row['user_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.
|
||||||
|
$group_ids[] = (int) $row['group_id'];
|
||||||
|
}
|
||||||
|
$groups_ary[(int) $row['group_id']] = $row;
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$sql_ary = array(
|
||||||
|
'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id',
|
||||||
|
|
||||||
|
'FROM' => array(
|
||||||
|
USER_GROUP_TABLE => 'ug',
|
||||||
|
),
|
||||||
|
|
||||||
|
'LEFT_JOIN' => array(
|
||||||
|
array(
|
||||||
|
'FROM' => array(USERS_TABLE => 'u'),
|
||||||
|
'ON' => 'ug.user_id = u.user_id AND ug.user_pending = 0',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'FROM' => array(GROUPS_TABLE => 'g'),
|
||||||
|
'ON' => 'ug.group_id = g.group_id',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
'WHERE' => $db->sql_in_set('g.group_id', $group_ids, false, true),
|
||||||
|
|
||||||
|
'ORDER_BY' => 'u.username_clean ASC',
|
||||||
|
);
|
||||||
|
|
||||||
|
$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));
|
||||||
|
|
||||||
|
$user_ary = array();
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$row['forums'] = '';
|
||||||
|
$row['forums_ary'] = array();
|
||||||
|
$user_ary[(int) $row['user_id']] = $row;
|
||||||
|
$user_ids[] = (int) $row['user_id'];
|
||||||
|
$group_users[(int) $row['group_id']][] = (int) $row['user_id'];
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if ($config['teampage_forums'])
|
||||||
|
{
|
||||||
|
$template->assign_var('S_DISPLAY_MODERATOR_FORUMS', true);
|
||||||
|
// Get all moderators
|
||||||
|
$perm_ary = $auth->acl_get_list(array_unique($user_ids), array('m_'), false);
|
||||||
|
|
||||||
|
foreach ($perm_ary as $forum_id => $forum_ary)
|
||||||
|
{
|
||||||
|
foreach ($forum_ary as $auth_option => $id_ary)
|
||||||
{
|
{
|
||||||
foreach ($forum_id_ary[$row['user_id']] as $forum_id)
|
foreach ($id_ary as $id)
|
||||||
{
|
{
|
||||||
if (isset($forums[$forum_id]))
|
if (!$forum_id)
|
||||||
{
|
{
|
||||||
if ($auth->acl_get('f_list', $forum_id))
|
$user_ary[$id]['forums'] = $user->lang['ALL_FORUMS'];
|
||||||
{
|
}
|
||||||
$s_forum_select .= '<option value="">' . $forums[$forum_id] . '</option>';
|
else
|
||||||
}
|
{
|
||||||
else
|
$user_ary[$id]['forums_ary'][] = $forum_id;
|
||||||
{
|
|
||||||
$undisclosed_forum = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the mod is only moderating non-viewable forums we skip the user. There is no gain in displaying the person then...
|
$sql = 'SELECT forum_id, forum_name
|
||||||
if (!$s_forum_select && $undisclosed_forum)
|
FROM ' . FORUMS_TABLE;
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$forums = array();
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
// $s_forum_select = '<option value="">' . $user->lang['FORUM_UNDISCLOSED'] . '</option>';
|
$forums[$row['forum_id']] = $row['forum_name'];
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
// The person is moderating several "public" forums, therefore the person should be listed, but not giving the real group name if hidden.
|
foreach ($user_ary as $user_id => $user_data)
|
||||||
if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $row['ug_user_id'] != $user->data['user_id'])
|
|
||||||
{
|
{
|
||||||
$group_name = $user->lang['GROUP_UNDISCLOSED'];
|
if (!$user_data['forums'])
|
||||||
$u_group = '';
|
{
|
||||||
|
foreach ($user_data['forums_ary'] as $forum_id)
|
||||||
|
{
|
||||||
|
$user_ary[$user_id]['forums_options'] = true;
|
||||||
|
if (isset($forums[$forum_id]))
|
||||||
|
{
|
||||||
|
if ($auth->acl_get('f_list', $forum_id))
|
||||||
|
{
|
||||||
|
$user_ary[$user_id]['forums'] .= '<option value="">' . $forums[$forum_id] . '</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($groups_ary as $group_id => $group_data)
|
||||||
|
{
|
||||||
|
if ($group_data['group_teampage'])
|
||||||
|
{
|
||||||
|
$template->assign_block_vars('group', array(
|
||||||
|
'GROUP_NAME' => $group_data['group_name'],
|
||||||
|
'GROUP_COLOR' => $group_data['group_colour'],
|
||||||
|
'U_GROUP' => $group_data['u_group'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display group members.
|
||||||
|
if (!empty($group_users[$group_id]))
|
||||||
|
{
|
||||||
|
foreach ($group_users[$group_id] as $user_id)
|
||||||
|
{
|
||||||
|
if (isset($user_ary[$user_id]))
|
||||||
|
{
|
||||||
|
$row = $user_ary[$user_id];
|
||||||
|
if (!$config['teampage_multiple'] && ($group_id != $groups_ary[$row['default_group']]['group_id']) && $groups_ary[$row['default_group']]['group_teampage'])
|
||||||
|
{
|
||||||
|
// Display users in their primary group, instead of the first group, when it is displayed on the teampage.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rank_title = $rank_img = $rank_img_src = '';
|
||||||
|
get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);
|
||||||
|
|
||||||
|
$template->assign_block_vars('group.user', array(
|
||||||
|
'USER_ID' => $row['user_id'],
|
||||||
|
'FORUMS' => $row['forums'],
|
||||||
|
'FORUM_OPTIONS' => (isset($row['forums_options'])) ? true : false,
|
||||||
|
'RANK_TITLE' => $rank_title,
|
||||||
|
|
||||||
|
'GROUP_NAME' => $groups_ary[$row['default_group']]['group_name'],
|
||||||
|
'GROUP_COLOR' => $groups_ary[$row['default_group']]['group_colour'],
|
||||||
|
'U_GROUP' => $groups_ary[$row['default_group']]['u_group'],
|
||||||
|
|
||||||
|
'RANK_IMG' => $rank_img,
|
||||||
|
'RANK_IMG_SRC' => $rank_img_src,
|
||||||
|
|
||||||
|
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $row['user_id']) : '',
|
||||||
|
|
||||||
|
'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
||||||
|
'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
|
||||||
|
'USER_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
|
||||||
|
'U_VIEW_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!$config['teampage_multiple'])
|
||||||
|
{
|
||||||
|
unset($user_ary[$user_id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
|
|
||||||
$u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$rank_title = $rank_img = '';
|
|
||||||
get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);
|
|
||||||
|
|
||||||
$template->assign_block_vars($which_row, array(
|
|
||||||
'USER_ID' => $row['user_id'],
|
|
||||||
'FORUMS' => $s_forum_select,
|
|
||||||
'RANK_TITLE' => $rank_title,
|
|
||||||
'GROUP_NAME' => $group_name,
|
|
||||||
'GROUP_COLOR' => $row['group_colour'],
|
|
||||||
|
|
||||||
'RANK_IMG' => $rank_img,
|
|
||||||
'RANK_IMG_SRC' => $rank_img_src,
|
|
||||||
|
|
||||||
'U_GROUP' => $u_group,
|
|
||||||
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $row['user_id']) : '',
|
|
||||||
|
|
||||||
'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
|
||||||
'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
|
|
||||||
'USER_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
|
|
||||||
'U_VIEW_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PM_IMG' => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
|
'PM_IMG' => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
|
||||||
|
|
|
@ -4,72 +4,43 @@
|
||||||
|
|
||||||
<form method="post" action="{S_MODE_ACTION}">
|
<form method="post" action="{S_MODE_ACTION}">
|
||||||
|
|
||||||
|
<!-- BEGIN group -->
|
||||||
<div class="forumbg">
|
<div class="forumbg">
|
||||||
<div class="inner"><span class="corners-top"><span></span></span>
|
<div class="inner"><span class="corners-top"><span></span></span>
|
||||||
|
|
||||||
<table class="table1" cellspacing="1">
|
<table class="table1" cellspacing="1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="name"><span class="rank-img">{L_RANK} </span>{L_ADMINISTRATORS}</th>
|
<th class="name"><span class="rank-img">{L_RANK} </span><!-- IF group.U_GROUP --><a href="{group.U_GROUP}">{group.GROUP_NAME}</a><!-- ELSE -->{group.GROUP_NAME}<!-- ENDIF --></th>
|
||||||
<th class="info">{L_PRIMARY_GROUP}</th>
|
<th class="info">{L_PRIMARY_GROUP}</th>
|
||||||
<th class="info">{L_FORUMS}</th>
|
<!-- IF S_DISPLAY_MODERATOR_FORUMS --><th class="info">{L_MODERATOR}</th><!-- ENDIF -->
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN admin -->
|
<!-- BEGIN user -->
|
||||||
<tr class="<!-- IF admin.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
<tr class="<!-- IF group.user.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
||||||
<td><!-- IF admin.RANK_IMG --><span class="rank-img">{admin.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{admin.RANK_TITLE}</span><!-- ENDIF -->{admin.USERNAME_FULL}</td>
|
<td><!-- IF group.user.RANK_IMG --><span class="rank-img">{group.user.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{group.user.RANK_TITLE}</span><!-- ENDIF -->{group.user.USERNAME_FULL}</td>
|
||||||
<td class="info"><!-- IF admin.U_GROUP -->
|
<td class="info"><!-- IF group.user.U_GROUP -->
|
||||||
<a<!-- IF admin.GROUP_COLOR --> style="font-weight: bold; color:#{admin.GROUP_COLOR}"<!-- ENDIF --> href="{admin.U_GROUP}">{admin.GROUP_NAME}</a>
|
<a<!-- IF group.user.GROUP_COLOR --> style="font-weight: bold; color: #{group.user.GROUP_COLOR}"<!-- ENDIF --> href="{group.user.U_GROUP}">{group.user.GROUP_NAME}</a>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
{admin.GROUP_NAME}
|
{group.user.GROUP_NAME}
|
||||||
<!-- ENDIF --></td>
|
<!-- ENDIF --></td>
|
||||||
<td class="info">-</td>
|
<!-- IF S_DISPLAY_MODERATOR_FORUMS -->
|
||||||
|
<td class="info"><!-- IF group.user.FORUM_OPTIONS --><select style="width: 100%;">{group.user.FORUMS}</select><!-- ELSEIF group.user.FORUMS -->{group.user.FORUMS}<!-- ELSE -->-<!-- ENDIF --></td>
|
||||||
|
<!-- ENDIF -->
|
||||||
</tr>
|
</tr>
|
||||||
<!-- BEGINELSE -->
|
<!-- BEGINELSE -->
|
||||||
<tr class="bg1">
|
<tr class="bg1">
|
||||||
<td colspan="3"><strong>{L_NO_ADMINISTRATORS}</strong></td>
|
<td colspan="3"><strong>{L_NO_MEMBERS}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- END admin -->
|
<!-- END user -->
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<span class="corners-bottom"><span></span></span></div>
|
<span class="corners-bottom"><span></span></span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- END group -->
|
||||||
|
|
||||||
<div class="forumbg">
|
|
||||||
<div class="inner"><span class="corners-top"><span></span></span>
|
|
||||||
|
|
||||||
<table class="table1" cellspacing="1">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="name">{L_MODERATORS}</th>
|
|
||||||
<th class="info"> </th>
|
|
||||||
<th class="info"> </th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<!-- BEGIN mod -->
|
|
||||||
<tr class="<!-- IF mod.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
|
||||||
<td><!-- IF mod.RANK_IMG --><span class="rank-img">{mod.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{mod.RANK_TITLE}</span><!-- ENDIF -->{mod.USERNAME_FULL}</td>
|
|
||||||
<td class="info"><!-- IF mod.U_GROUP -->
|
|
||||||
<a<!-- IF mod.GROUP_COLOR --> style="font-weight: bold; color:#{mod.GROUP_COLOR}"<!-- ENDIF --> href="{mod.U_GROUP}">{mod.GROUP_NAME}</a>
|
|
||||||
<!-- ELSE -->
|
|
||||||
{mod.GROUP_NAME}
|
|
||||||
<!-- ENDIF --></td>
|
|
||||||
<td class="info"><!-- IF not mod.FORUMS -->{L_ALL_FORUMS}<!-- ELSE --><select style="width: 100%;">{mod.FORUMS}</select><!-- ENDIF --></td>
|
|
||||||
</tr>
|
|
||||||
<!-- BEGINELSE -->
|
|
||||||
<tr class="bg1">
|
|
||||||
<td colspan="3"><strong>{L_NO_MODERATORS}</strong></td>
|
|
||||||
</tr>
|
|
||||||
<!-- END mod -->
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<span class="corners-bottom"><span></span></span></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<!-- INCLUDE jumpbox.html -->
|
<!-- INCLUDE jumpbox.html -->
|
||||||
|
|
|
@ -5,57 +5,36 @@
|
||||||
<table class="tablebg" width="100%" cellspacing="1">
|
<table class="tablebg" width="100%" cellspacing="1">
|
||||||
<tr>
|
<tr>
|
||||||
<th nowrap="nowrap" width="20%">{L_USERNAME}</th>
|
<th nowrap="nowrap" width="20%">{L_USERNAME}</th>
|
||||||
<th nowrap="nowrap" width="25%">{L_FORUMS}</th>
|
<!-- IF S_DISPLAY_MODERATOR_FORUMS --><th nowrap="nowrap" width="25%">{L_FORUMS}</th><!-- ENDIF -->
|
||||||
<th nowrap="nowrap" width="20%">{L_PRIMARY_GROUP}</th>
|
<th nowrap="nowrap" width="20%">{L_PRIMARY_GROUP}</th>
|
||||||
<th nowrap="nowrap" width="15%">{L_RANK}</th>
|
<th nowrap="nowrap" width="15%">{L_RANK}</th>
|
||||||
<th nowrap="nowrap" width="11%">{L_SEND_MESSAGE}</th>
|
<th nowrap="nowrap" width="11%">{L_SEND_MESSAGE}</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
<!-- BEGIN group -->
|
||||||
<tr class="row3">
|
<tr class="row3">
|
||||||
<td colspan="5"><b class="gensmall">{L_ADMINISTRATORS}</b></td>
|
<td colspan="5"><b class="gensmall"><!-- IF group.U_GROUP --><a href="{group.U_GROUP}">{group.GROUP_NAME}</a><!-- ELSE -->{group.GROUP_NAME}<!-- ENDIF --></b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- BEGIN admin -->
|
<!-- BEGIN user -->
|
||||||
<!-- IF admin.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
|
<!-- IF group.user.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
|
||||||
|
|
||||||
<td class="gen" align="center"><strong>{admin.USERNAME_FULL}</strong></td>
|
<td class="gen" align="center"><strong>{group.user.USERNAME_FULL}</strong></td>
|
||||||
<td class="gensmall" align="center"> </td>
|
<!-- IF S_DISPLAY_MODERATOR_FORUMS --><td class="gensmall" align="center"><!-- IF group.user.FORUM_OPTIONS --><select style="width: 100%;">{group.user.FORUMS}</select><!-- ELSEIF group.user.FORUMS -->{group.user.FORUMS}<!-- ELSE -->-<!-- ENDIF --></td><!-- ENDIF -->
|
||||||
<td class="gensmall" align="center" nowrap="nowrap">
|
<td class="gensmall" align="center" nowrap="nowrap">
|
||||||
<!-- IF admin.U_GROUP -->
|
<!-- IF group.user.U_GROUP -->
|
||||||
<a<!-- IF admin.GROUP_COLOR --> style="font-weight: bold; color:#{admin.GROUP_COLOR}"<!-- ENDIF --> href="{admin.U_GROUP}">{admin.GROUP_NAME}</a>
|
<a<!-- IF group.user.GROUP_COLOR --> style="font-weight: bold; color:#{group.user.GROUP_COLOR}"<!-- ENDIF --> href="{group.user.U_GROUP}">{group.user.GROUP_NAME}</a>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
{admin.GROUP_NAME}
|
{group.user.GROUP_NAME}
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</td>
|
</td>
|
||||||
<td class="gen" align="center"><!-- IF admin.RANK_IMG -->{admin.RANK_IMG}<!-- ELSE -->{admin.RANK_TITLE}<!-- ENDIF --></td>
|
<td class="gen" align="center"><!-- IF group.user.RANK_IMG -->{group.user.RANK_IMG}<!-- ELSE -->{group.user.RANK_TITLE}<!-- ENDIF --></td>
|
||||||
<td class="gen" align="center"> <!-- IF admin.U_PM --><a href="{admin.U_PM}">{PM_IMG}</a><!-- ENDIF --> </td>
|
<td class="gen" align="center"> <!-- IF group.user.U_PM --><a href="{group.user.U_PM}">{PM_IMG}</a><!-- ENDIF --> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- BEGINELSE -->
|
<!-- BEGINELSE -->
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row1" colspan="5" align="center"><span class="gen">{L_NO_ADMINISTRATORS}</span></td>
|
<td class="row1" colspan="5" align="center"><span class="gen">{L_NO_MEMBERS}</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- END admin -->
|
<!-- END user -->
|
||||||
<tr class="row3">
|
<!-- END group -->
|
||||||
<td colspan="5"><b class="gensmall">{L_MODERATORS}</b></td>
|
|
||||||
</tr>
|
|
||||||
<!-- BEGIN mod -->
|
|
||||||
<!-- IF mod.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
|
|
||||||
|
|
||||||
<td class="gen" align="center"><strong>{mod.USERNAME_FULL}</strong></td>
|
|
||||||
<td align="center"><!-- IF not mod.FORUMS -->{L_ALL_FORUMS}<!-- ELSE --><select style="width: 200px;">{mod.FORUMS}</select><!-- ENDIF --> </td>
|
|
||||||
<td class="gensmall" align="center" nowrap="nowrap">
|
|
||||||
<!-- IF mod.U_GROUP -->
|
|
||||||
<a<!-- IF mod.GROUP_COLOR --> style="font-weight: bold; color:#{mod.GROUP_COLOR}"<!-- ENDIF --> href="{mod.U_GROUP}">{mod.GROUP_NAME}</a>
|
|
||||||
<!-- ELSE -->
|
|
||||||
{mod.GROUP_NAME}
|
|
||||||
<!-- ENDIF -->
|
|
||||||
</td>
|
|
||||||
<td class="gen" align="center"><!-- IF mod.RANK_IMG -->{mod.RANK_IMG}<!-- ELSE -->{mod.RANK_TITLE}<!-- ENDIF --></td>
|
|
||||||
<td class="gen" align="center"> <!-- IF mod.U_PM --><a href="{mod.U_PM}">{PM_IMG}</a><!-- ENDIF --> </td>
|
|
||||||
</tr>
|
|
||||||
<!-- BEGINELSE -->
|
|
||||||
<tr>
|
|
||||||
<td class="row1" colspan="5" align="center"><span class="gen">{L_NO_MODERATORS}</span></td>
|
|
||||||
</tr>
|
|
||||||
<!-- END mod -->
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -371,17 +371,18 @@ unset($vars_online);
|
||||||
|
|
||||||
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir"), $counter, $config['topics_per_page'], $start);
|
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir"), $counter, $config['topics_per_page'], $start);
|
||||||
|
|
||||||
|
$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
|
||||||
// Grab group details for legend display
|
// Grab group details for legend display
|
||||||
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
|
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
|
||||||
{
|
{
|
||||||
$sql = 'SELECT group_id, group_name, group_colour, group_type
|
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
|
||||||
FROM ' . GROUPS_TABLE . '
|
FROM ' . GROUPS_TABLE . '
|
||||||
WHERE group_legend = 1
|
WHERE group_legend = > 0
|
||||||
ORDER BY group_name ASC';
|
ORDER BY ' . $order_legend . ' ASC';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
|
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend
|
||||||
FROM ' . GROUPS_TABLE . ' g
|
FROM ' . GROUPS_TABLE . ' g
|
||||||
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
|
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
|
||||||
ON (
|
ON (
|
||||||
|
@ -389,9 +390,9 @@ else
|
||||||
AND ug.user_id = ' . $user->data['user_id'] . '
|
AND ug.user_id = ' . $user->data['user_id'] . '
|
||||||
AND ug.user_pending = 0
|
AND ug.user_pending = 0
|
||||||
)
|
)
|
||||||
WHERE g.group_legend = 1
|
WHERE g.group_legend > 0
|
||||||
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
|
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
|
||||||
ORDER BY g.group_name ASC';
|
ORDER BY g.' . $order_legend . ' ASC';
|
||||||
}
|
}
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
|
23
tests/group_positions/fixtures/group_positions.xml
Normal file
23
tests/group_positions/fixtures/group_positions.xml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<dataset>
|
||||||
|
<table name="phpbb_groups">
|
||||||
|
<column>group_id</column>
|
||||||
|
<column>group_teampage</column>
|
||||||
|
<column>group_legend</column>
|
||||||
|
<row>
|
||||||
|
<value>1</value>
|
||||||
|
<value>0</value>
|
||||||
|
<value>0</value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>2</value>
|
||||||
|
<value>1</value>
|
||||||
|
<value>0</value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>3</value>
|
||||||
|
<value>2</value>
|
||||||
|
<value>1</value>
|
||||||
|
</row>
|
||||||
|
</table>
|
||||||
|
</dataset>
|
287
tests/group_positions/group_positions_test.php
Normal file
287
tests/group_positions/group_positions_test.php
Normal file
|
@ -0,0 +1,287 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) 2011 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class phpbb_group_positions_test extends phpbb_database_test_case
|
||||||
|
{
|
||||||
|
public function getDataSet()
|
||||||
|
{
|
||||||
|
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/group_positions.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function get_group_value_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, 0),
|
||||||
|
array('teampage', 2, 1),
|
||||||
|
array('legend', 1, 0),
|
||||||
|
array('legend', 3, 1),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider get_group_value_data
|
||||||
|
*/
|
||||||
|
public function test_get_group_value($field, $group_id, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$this->assertEquals($expected, $test_class->get_group_value($group_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function get_group_count_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 2),
|
||||||
|
array('legend', 1),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider get_group_count_data
|
||||||
|
*/
|
||||||
|
public function test_get_group_count($field, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$this->assertEquals($expected, $test_class->get_group_count());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function add_group_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 3, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider add_group_data
|
||||||
|
*/
|
||||||
|
public function test_add_group($field, $group_id, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$test_class->add_group($group_id);
|
||||||
|
|
||||||
|
$result = $db->sql_query('SELECT group_id, group_teampage, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_id ASC');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function delete_group_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, false, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, false, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, false, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 0, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 1, true, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, true, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, true, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider delete_group_data
|
||||||
|
*/
|
||||||
|
public function test_delete_group($field, $group_id, $skip_group, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$test_class->delete_group($group_id, $skip_group);
|
||||||
|
|
||||||
|
$result = $db->sql_query('SELECT group_id, group_teampage, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_id ASC');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function move_up_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 2, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_up_data
|
||||||
|
*/
|
||||||
|
public function test_move_up($field, $group_id, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$test_class->move_up($group_id);
|
||||||
|
|
||||||
|
$result = $db->sql_query('SELECT group_id, group_teampage, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_id ASC');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function move_down_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 2, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_down_data
|
||||||
|
*/
|
||||||
|
public function test_move_down($field, $group_id, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$test_class->move_down($group_id);
|
||||||
|
|
||||||
|
$result = $db->sql_query('SELECT group_id, group_teampage, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_id ASC');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function move_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('teampage', 1, 1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 1, -1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, 3, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 2, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, 0, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, -1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 2, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 2, -3, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 2, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 1, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
array('teampage', 3, -1, array(
|
||||||
|
array('group_id' => 1, 'group_teampage' => 0, 'group_legend' => 0),
|
||||||
|
array('group_id' => 2, 'group_teampage' => 1, 'group_legend' => 0),
|
||||||
|
array('group_id' => 3, 'group_teampage' => 2, 'group_legend' => 1),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_data
|
||||||
|
*/
|
||||||
|
public function test_move($field, $group_id, $increment, $expected)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$test_class = new phpbb_group_positions($db, $field);
|
||||||
|
$test_class->move($group_id, $increment);
|
||||||
|
|
||||||
|
$result = $db->sql_query('SELECT group_id, group_teampage, group_legend
|
||||||
|
FROM ' . GROUPS_TABLE . '
|
||||||
|
ORDER BY group_id ASC');
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue