diff --git a/phpBB/adm/admin_groups.php b/phpBB/adm/admin_groups.php
index f6855035f9..4bae471635 100644
--- a/phpBB/adm/admin_groups.php
+++ b/phpBB/adm/admin_groups.php
@@ -19,15 +19,15 @@
*
***************************************************************************/
-if (!empty($setmodules) )
+if (!empty($setmodules))
{
- if (!$auth->acl_get('a_group') )
+ if (!$auth->acl_get('a_group'))
{
return;
}
$module['GROUP']['MANAGE'] = basename(__FILE__) . "$SID&mode=manage";
- $module['GROUP']['PREFERENCES'] = basename(__FILE__) . "$SID&mode=prefs";
+ $module['GROUP']['GROUP_PREFS'] = basename(__FILE__) . "$SID&mode=prefs";
return;
}
@@ -35,7 +35,7 @@ if (!empty($setmodules) )
define('IN_PHPBB', 1);
// Include files
$phpbb_root_path = '../';
-require($phpbb_root_path . 'extension.inc');
+$phpEx = substr(strrchr(__FILE__, '.'), 1);
require('pagestart.' . $phpEx);
// Do we have general permissions?
@@ -44,8 +44,13 @@ if (!$auth->acl_get('a_group') )
trigger_error($user->lang['NO_ADMIN']);
}
+
+
// Check and set some common vars
-$mode = (isset($_REQUEST['mode'])) ? $_REQUEST['mode'] : '';
+$update = (isset($_POST['update'])) ? true : false;
+$mode = (isset($_REQUEST['mode'])) ? htmlspecialchars($_REQUEST['mode']) : '';
+$group_id = (isset($_REQUEST['g'])) ? intval($_REQUEST['g']) : '';
+
if (isset($_POST['addgroup']))
{
$action = 'addgroup';
@@ -54,27 +59,27 @@ else if (isset($_POST['delete']))
{
$action = 'delete';
}
-else if (isset($_POST['add']))
+else if (isset($_POST['addleaders']) || isset($_POST['addusers']))
{
- $action = 'add';
+ $action = (isset($_POST['addleaders'])) ? 'addleaders' : 'addusers';
}
else
{
- $action = (isset($_REQUEST['action'])) ? $_REQUEST['action'] : '';
+ $action = (isset($_REQUEST['action'])) ? htmlspecialchars($_REQUEST['action']) : '';
}
-$group_id = (isset($_REQUEST['g'])) ? intval($_REQUEST['g']) : '';
-$start = (isset($_GET['start']) && $mode == 'member') ? intval($_GET['start']) : 0;
-$start_mod = (isset($_GET['start']) && $mode == 'mod') ? intval($_GET['start']) : 0;
-$start_pend = (isset($_GET['start']) && $mode == 'pend') ? intval($_GET['start']) : 0;
+$start = (isset($_GET['start']) && $action == 'member') ? intval($_GET['start']) : 0;
+$start_mod = (isset($_GET['start']) && $action == 'leader') ? intval($_GET['start']) : 0;
+$start_pend = (isset($_GET['start']) && $action == 'pending') ? intval($_GET['start']) : 0;
+
// Grab basic data for group, if group_id is set since it's used
// in several places below
-if (!empty($group_id))
+if ($group_id)
{
- $sql = "SELECT *
- FROM " . GROUPS_TABLE . "
+ $sql = 'SELECT *
+ FROM ' . GROUPS_TABLE . "
WHERE group_id = $group_id";
$result = $db->sql_query($sql);
@@ -85,134 +90,126 @@ if (!empty($group_id))
$db->sql_freeresult($result);
}
-// Page header
-adm_page_header($user->lang['MANAGE']);
-// Which page?
-switch ($action)
+
+switch ($mode)
{
- case 'edit':
- case 'addgroup':
+ case 'manage':
+ // Page header
+ adm_page_header($user->lang['MANAGE']);
- $error = '';
-
- // Did we submit?
- if (isset($_POST['submit']) || isset($_POST['submitprefs']))
+ // Which page?
+ switch ($action)
{
- if (isset($_POST['submit']))
- {
- if ($group_type != GROUP_SPECIAL)
- {
- $group_name = (!empty($_POST['group_name'])) ? htmlspecialchars($_POST['group_name']) : '';
- $group_type = (!empty($_POST['group_type'])) ? intval($_POST['group_type']) : '';
- }
- $group_description = (!empty($_POST['group_description'])) ? htmlspecialchars($_POST['group_description']) : '';
- $group_colour = (!empty($_POST['group_colour'])) ? htmlspecialchars($_POST['group_colour']) : '';
- $group_rank = (isset($_POST['group_rank'])) ? intval($_POST['group_rank']) : '';
- $group_avatar = (!empty($_POST['group_avatar'])) ? htmlspecialchars($_POST['group_avatar']) : '';
+ case 'edit':
+ case 'addgroup':
- // Check data
- if ($group_name == '' || strlen($group_name) > 40)
+ // Did we submit?
+ if ($update)
{
- $error .= (($error != '') ? '
' : '') . (($group_name == '') ? $user->lang['GROUP_ERR_USERNAME'] : $user->lang['GROUP_ERR_USER_LONG']);
- }
- if (strlen($group_description) > 255)
- {
- $error .= (($error != '') ? '
' : '') . $user->lang['GROUP_ERR_DESC_LONG'];
- }
- if ($group_type < GROUP_OPEN || $group_type > GROUP_FREE)
- {
- $error .= (($error != '') ? '
' : '') . $user->lang['GROUP_ERR_TYPE'];
- }
- }
- else
- {
- $user_lang = (!empty($_POST['user_lang'])) ? htmlspecialchars($_POST['user_lang']) : '';
- $user_tz = (isset($_POST['user_tz'])) ? doubleval($_POST['user_tz']) : '';
- $user_dst = (isset($_POST['user_dst'])) ? intval($_POST['user_dst']) : '';
- }
+ if ($group_type != GROUP_SPECIAL)
+ {
+ $group_name = (!empty($_POST['group_name'])) ? htmlspecialchars($_POST['group_name']) : '';
+ $group_type = (!empty($_POST['group_type'])) ? intval($_POST['group_type']) : '';
+ }
+ $group_description = (!empty($_POST['group_description'])) ? htmlspecialchars($_POST['group_description']) : '';
+ $group_colour = (!empty($_POST['group_colour'])) ? htmlspecialchars($_POST['group_colour']) : '';
+ $group_rank = (isset($_POST['group_rank'])) ? intval($_POST['group_rank']) : '';
+ $group_avatar = (!empty($_POST['group_avatar'])) ? htmlspecialchars($_POST['group_avatar']) : '';
- // Update DB
- if (!$error)
- {
- // Update group preferences
- $sql = "UPDATE " . GROUPS_TABLE . "
- SET group_name = '$group_name', group_description = '$group_description', group_type = $group_type, group_rank = $group_rank, group_colour = '$group_colour'
- WHERE group_id = $group_id";
- $db->sql_query($sql);
+ // Check data
+ if ($group_name == '' || strlen($group_name) > 40)
+ {
+ $error .= (($error != '') ? '
' : '') . (($group_name == '') ? $user->lang['GROUP_ERR_USERNAME'] : $user->lang['GROUP_ERR_USER_LONG']);
+ }
+ if (strlen($group_description) > 255)
+ {
+ $error .= (($error != '') ? '
' : '') . $user->lang['GROUP_ERR_DESC_LONG'];
+ }
+ if ($group_type < GROUP_OPEN || $group_type > GROUP_FREE)
+ {
+ $error .= (($error != '') ? '
' : '') . $user->lang['GROUP_ERR_TYPE'];
+ }
+ /*
+ // Update DB
+ if (!$error)
+ {
+ // Update group preferences
+ $sql = "UPDATE " . GROUPS_TABLE . "
+ SET group_name = '$group_name', group_description = '$group_description', group_type = $group_type, group_rank = $group_rank, group_colour = '$group_colour'
+ WHERE group_id = $group_id";
+ $db->sql_query($sql);
- $user_sql = '';
- $user_sql .= (isset($_POST['submit'])) ? ((($user_sql != '') ? ', ' : '') . "user_colour = '$group_colour'") : '';
- $user_sql .= (isset($_POST['submit']) && $group_rank != -1) ? ((($user_sql != '') ? ', ' : '') . "user_rank = $group_rank") : '';
- $user_sql .= (isset($_POST['submitprefs']) && $user_lang != -1) ? ((($user_sql != '') ? ', ' : '') . "user_lang = '$user_lang'") : '';
- $user_sql .= (isset($_POST['submitprefs']) && $user_tz != -14) ? ((($user_sql != '') ? ', ' : '') . "user_timezone = $user_tz") : '';
- $user_sql .= (isset($_POST['submitprefs']) && $user_dst != -1) ? ((($user_sql != '') ? ', ' : '') . "user_dst = $user_dst") : '';
+ $user_sql = '';
+ $user_sql .= (isset($_POST['submit'])) ? ((($user_sql != '') ? ', ' : '') . "user_colour = '$group_colour'") : '';
+ $user_sql .= (isset($_POST['submit']) && $group_rank != -1) ? ((($user_sql != '') ? ', ' : '') . "user_rank = $group_rank") : '';
- // Update group members preferences
- switch (SQL_LAYER)
- {
- case 'mysql':
- case 'mysql4':
- // batchwise? 500 at a time or so maybe? try to reduce memory useage
- $more = true;
- $start = 0;
- do
+ // Update group members preferences
+ switch (SQL_LAYER)
{
- $sql = 'SELECT user_id
- FROM ' . USER_GROUP_TABLE . "
- WHERE group_id = $group_id
- LIMIT $start, 500";
- $result = $db->sql_query($sql);
-
- if ($row = $db->sql_fetchrow($result))
- {
- $user_count = 0;
- $user_id_sql = '';
+ case 'mysql':
+ case 'mysql4':
+ // batchwise? 500 at a time or so maybe? try to reduce memory useage
+ $more = true;
+ $start = 0;
do
{
- $user_id_sql .= (($user_id_sql != '') ? ', ' : '') . $row['user_id'];
- $user_count++;
- }
- while ($row = $db->sql_fetchrow($result));
+ $sql = 'SELECT user_id
+ FROM ' . USER_GROUP_TABLE . "
+ WHERE group_id = $group_id
+ LIMIT $start, 500";
+ $result = $db->sql_query($sql);
- $sql = 'UPDATE ' . USERS_TABLE . "
+ if ($row = $db->sql_fetchrow($result))
+ {
+ $user_count = 0;
+ $user_id_sql = '';
+ do
+ {
+ $user_id_sql .= (($user_id_sql != '') ? ', ' : '') . $row['user_id'];
+ $user_count++;
+ }
+ while ($row = $db->sql_fetchrow($result));
+
+ $sql = 'UPDATE ' . USERS_TABLE . "
+ SET $user_sql
+ WHERE user_id IN ($user_id_sql)";
+ $db->sql_query($sql);
+
+ if ($user_count == 500)
+ {
+ $start += 500;
+ }
+ else
+ {
+ $more = false;
+ }
+ }
+ else
+ {
+ $more = false;
+ }
+ $db->sql_freeresult($result);
+ unset($user_id_sql);
+ }
+ while ($more);
+
+ break;
+
+ default:
+ $sql ='"UPDATE ' . USERS_TABLE . "
SET $user_sql
- WHERE user_id IN ($user_id_sql)";
+ WHERE user_id IN (
+ SELECT user_id
+ FROM " . USER_GROUP_TABLE . "
+ WHERE group_id = $group_id)";
$db->sql_query($sql);
-
- if ($user_count == 500)
- {
- $start += 500;
- }
- else
- {
- $more = false;
- }
- }
- else
- {
- $more = false;
- }
- $db->sql_freeresult($result);
- unset($user_id_sql);
}
- while ($more);
- break;
-
- default:
- $sql ='"UPDATE ' . USERS_TABLE . "
- SET $user_sql
- WHERE user_id IN (
- SELECT user_id
- FROM " . USER_GROUP_TABLE . "
- WHERE group_id = $group_id)";
- $db->sql_query($sql);
+ trigger_error($user->lang['GROUP_UPDATED']);
+ }*/
}
- trigger_error($user->lang['GROUP_UPDATED']);
- }
- }
?>
@@ -222,28 +219,28 @@ switch ($action)
sql_query($sql);
+ $sql = 'SELECT *
+ FROM ' . RANKS_TABLE . '
+ WHERE rank_special = 1
+ ORDER BY rank_title';
+ $result = $db->sql_query($sql);
- $rank_options = '';
- if ($row = $db->sql_fetchrow($result))
- {
- do
- {
- $selected = (!empty($group_rank) && $row['rank_id'] == $group_rank) ? ' selected="selected"' : '';
- $rank_options .= '';
- }
- while ($row = $db->sql_fetchrow($result));
- }
- $db->sql_freeresult($result);
+ $rank_options = '';
+ if ($row = $db->sql_fetchrow($result))
+ {
+ do
+ {
+ $selected = (!empty($group_rank) && $row['rank_id'] == $group_rank) ? ' selected="selected"' : '';
+ $rank_options .= '';
+ }
+ while ($row = $db->sql_fetchrow($result));
+ }
+ $db->sql_freeresult($result);
- $type_open = ($group_type == GROUP_OPEN) ? ' checked="checked"' : '';
- $type_closed = ($group_type == GROUP_CLOSED) ? ' checked="checked"' : '';
- $type_hidden = ($group_type == GROUP_HIDDEN) ? ' checked="checked"' : '';
- $type_free = ($group_type == GROUP_FREE) ? ' checked="checked"' : '';
+ $type_open = ($group_type == GROUP_OPEN) ? ' checked="checked"' : '';
+ $type_closed = ($group_type == GROUP_CLOSED) ? ' checked="checked"' : '';
+ $type_hidden = ($group_type == GROUP_HIDDEN) ? ' checked="checked"' : '';
+ $type_free = ($group_type == GROUP_FREE) ? ' checked="checked"' : '';
?>
@@ -252,47 +249,47 @@ switch ($action)
function swatch()
{
- window.open('./swatch.php?form=settings&name=group_colour', '_swatch', 'HEIGHT=115,resizable=yes,scrollbars=no,WIDTH=636');
+ window.open('./swatch.?form=settings&name=group_colour', '_swatch', 'HEIGHT=115,resizable=yes,scrollbars=no,WIDTH=636');
return false;
}
//-->
-