diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2005-12-21 19:18:42 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2005-12-21 19:18:42 +0000 |
commit | 1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c (patch) | |
tree | df17a442cee350712f35ef725bad495c3e913e65 /phpBB/includes | |
parent | f4f2ab3a35ed74eefe713c9d3d9aada841201161 (diff) | |
download | forums-1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c.tar forums-1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c.tar.gz forums-1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c.tar.bz2 forums-1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c.tar.xz forums-1ec71c78b690d87beccb8e6e84fa8bfa6f7a5f2c.zip |
- and finally, user groups. :)
git-svn-id: file:///svn/phpbb/trunk@5366 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/acp/acp_groups.php | 15 | ||||
-rw-r--r-- | phpBB/includes/acp/acp_users.php | 140 |
2 files changed, 154 insertions, 1 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php index 35f6f61936..44b763b310 100644 --- a/phpBB/includes/acp/acp_groups.php +++ b/phpBB/includes/acp/acp_groups.php @@ -385,6 +385,19 @@ class acp_groups avatar_gallery($category, $avatar_select, 4); } + $back_link = request_var('back_link', ''); + + switch ($back_link) + { + case 'acp_users_groups': + $u_back = $phpbb_admin_path . "index.$phpEx$SID&i=users&mode=groups&u=" . request_var('u', 0); + break; + + default: + $u_back = $u_action; + break; + } + $template->assign_vars(array( 'S_EDIT' => true, 'S_INCLUDE_SWATCH' => true, @@ -416,7 +429,7 @@ class acp_groups 'GROUP_CLOSED' => $type_closed, 'GROUP_HIDDEN' => $type_hidden, - 'U_BACK' => $u_action, + 'U_BACK' => $u_back, 'U_SWATCH' => "{$phpbb_admin_path}swatch.$phpEx$SID&form=settings&name=group_colour", 'U_ACTION' => "{$u_action}&action=$action&g=$group_id", 'L_AVATAR_EXPLAIN' => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)), diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index 57f685997f..1aa5e135aa 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1558,6 +1558,146 @@ class acp_users ); break; + + case 'groups': + + $user->add_lang('groups'); + $group_id = request_var('g', 0); + + switch ($action) + { + case 'demote': + case 'promote': + case 'default': + group_user_attributes($action, $group_id, $user_id); + + if ($action == 'default') + { + $user_row['group_id'] = $group_id; + } + break; + + case 'delete': + + if (confirm_box(true)) + { + if (!$group_id) + { + trigger_error($user->lang['NO_GROUP'] . adm_back_link($u_action . '&u=' . $user_id)); + } + + if ($error = group_user_del($group_id, $user_id)) + { + trigger_error($user->lang[$error] . adm_back_link($u_action . '&u=' . $user_id)); + } + + $error = array(); + } + else + { + confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array( + 'u' => $user_id, + 'i' => $id, + 'mode' => $mode, + 'action' => $action, + 'g' => $group_id)) + ); + } + + break; + } + + // Add user to group? + if ($submit) + { + if (!$group_id) + { + trigger_error($user->lang['NO_GROUP'] . adm_back_link($u_action . '&u=' . $user_id)); + } + + // Add user/s to group + if ($error = group_user_add($group_id, $user_id)) + { + trigger_error($user->lang[$error] . adm_back_link($u_action . '&u=' . $user_id)); + } + + $error = array(); + } + + + $sql = 'SELECT ug.*, g.* + FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . " ug + WHERE ug.user_id = $user_id + AND g.group_id = ug.group_id + ORDER BY g.group_type DESC, ug.user_pending ASC, g.group_name"; + $result = $db->sql_query($sql); + + $i = 0; + $group_data = $id_ary = array(); + while ($row = $db->sql_fetchrow($result)) + { + $type = ($row['group_type'] == GROUP_SPECIAL) ? 'special' : (($row['user_pending']) ? 'pending' : 'normal'); + + $group_data[$type][$i]['group_id'] = $row['group_id']; + $group_data[$type][$i]['group_name'] = $row['group_name']; + $group_data[$type][$i]['group_leader'] = ($row['group_leader']) ? 1 : 0; + + $id_ary[] = $row['group_id']; + + $i++; + } + $db->sql_freeresult($result); + + // Select box for other groups + $sql = 'SELECT group_id, group_name, group_type + FROM ' . GROUPS_TABLE . ' + WHERE group_id NOT IN (' . implode(', ', $id_ary) . ') + ORDER BY group_type DESC, group_name ASC'; + $result = $db->sql_query($sql); + + $s_group_options = ''; + while ($row = $db->sql_fetchrow($result)) + { + $s_group_options .= '<option' . (($row['group_type'] == GROUP_SPECIAL) ? ' class="sep"' : '') . ' value="' . $row['group_id'] . '">' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</option>'; + } + $db->sql_freeresult($result); + + $current_type = ''; + foreach ($group_data as $group_type => $data_ary) + { + if ($current_type != $group_type) + { + $template->assign_block_vars('group', array( + 'S_NEW_GROUP_TYPE' => true, + 'GROUP_TYPE' => $user->lang['USER_GROUP_' . strtoupper($group_type)]) + ); + } + + foreach ($data_ary as $data) + { + $template->assign_block_vars('group', array( + 'U_EDIT_GROUP' => "{$phpbb_admin_path}index.$phpEx$SID&i=groups&mode=manage&action=edit&u=$user_id&g=" . $data['group_id'] . '&back_link=acp_users_groups', + 'U_DEFAULT' => $u_action . "&action=default&u=$user_id&g=" . $data['group_id'], + 'U_DEMOTE_PROMOTE' => $u_action . '&action=' . (($data['group_leader']) ? 'demote' : 'promote') . "&u=$user_id&g=" . $data['group_id'], + 'U_DELETE' => $u_action . "&action=delete&u=$user_id&g=" . $data['group_id'], + + 'GROUP_NAME' => ($group_type == 'special') ? $user->lang['G_' . $data['group_name']] : $data['group_name'], + 'L_DEMOTE_PROMOTE' => ($data['group_leader']) ? $user->lang['GROUP_DEMOTE'] : $user->lang['GROUP_PROMOTE'], + + 'S_NO_DEFAULT' => ($user_row['group_id'] != $data['group_id']) ? true : false, + 'S_SPECIAL_GROUP' => ($group_type == 'special') ? true : false, + ) + ); + } + } + + $template->assign_vars(array( + 'S_GROUPS' => true, + 'S_GROUP_OPTIONS' => $s_group_options) + ); + + break; + } // Assign general variables |