5,
'cat' => 'Users',
'mode' => 'groups',
'name' => 'Groups',
'title' => 'Group management',
);
########################################################
function admin_groups(&$engine, &$module)
{
$where = '';
$order = '';
$usergroup = '';
$orderuser = '';
/* TODO:
* Pre-defined groups
* Pre-defined groups are special groups, they cannot be deleted or directly modified. However you can still add users and alter basic settings.
*
* User defined groups
* These are groups created by you or another admin on this board. You can manage memberships as well as edit group properties or even delete the group.
*/
?>
From this panel you can administrate all your usergroups. You can delete, create and edit existing groups. Furthermore, you may choose group leaders, toggle open/hidden/closed group status and set the group name and description.
log(4, "Updated usergroup members ");
$this->set_message($this->get_translation('GroupsUpdated'));
}
else
{
// get group
if (isset($_GET['group_id']) || isset($_POST['addmember'])|| isset($_POST['removemember']))
{
$group_id = (isset($_GET['group_id']) ? $_GET['group_id'] : $_POST['group_id']);
// add member into group
if (isset($_POST['addmember']) && isset($_POST['newmember']))
{
$engine->sql_query(
"INSERT INTO {$engine->config['table_prefix']}usergroup_member SET ".
"group_id = '".quote($engine->dblink, $_POST['group_id'])."', ".
"user_id = '".quote($engine->dblink, (int)$_POST['newmember'])."'");
$engine->log(4, "Added member //'{$_POST['newmember']}'// into group //'{$_POST['group_id']}'// ");
unset($_POST['addmember']);
}
// remove member from group
else if (isset($_POST['removemember']) && isset($_POST['member_id']) && isset($_POST['group_id']))
{
$engine->sql_query(
"DELETE FROM {$engine->config['table_prefix']}usergroup_member ".
"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' ".
"AND user_id = '".quote($engine->dblink, $_POST['member_id'])."'");
$engine->set_message($engine->get_translation('MembersRemoved'));
$engine->log(4, "Removed member //'{$_POST['member_id']}'// from group //'{$_POST['group_id']}'//");
}
/////////////////////////////////////////////
// edit forms
/////////////////////////////////////////////
// add member into group
if (isset($_POST['addmember']))
{
echo '';
}
// remove member from group
if (isset($_POST['removemember']) && isset($_POST['changemember']))
{
if ($member = $engine->load_single("SELECT user_name FROM {$engine->config['table_prefix']}user WHERE user_id = '".quote($engine->dblink, $_POST['changemember'])."' LIMIT 1"))
{
echo '';
}
}
}
// add group
if (isset($_POST['create']) && isset($_POST['newname']))
{
// do we have identical names?
if ($engine->load_single(
"SELECT group_id FROM {$engine->config['table_prefix']}usergroup ".
"WHERE group_name = '".quote($engine->dblink, $_POST['newname'])."' ".
"LIMIT 1"))
{
$engine->set_message($engine->get_translation('GroupsAlreadyExists'));
$_POST['change'] = $_POST['group_id'];
$_POST['create'] = 1;
}
else
{
$engine->sql_query(
"INSERT INTO {$engine->config['table_prefix']}usergroup SET ".
"created = NOW(), ".
"description = '".quote($engine->dblink, $_POST['description'])."', ".
"moderator = '".quote($engine->dblink, (int)$_POST['moderator'])."', ".
"group_name = '".quote($engine->dblink, $_POST['newname'])."', ".
"open = '".quote($engine->dblink, (int)$_POST['open'])."', ".
"active = '".quote($engine->dblink, (int)$_POST['active'])."'");
$engine->set_message($engine->get_translation('GroupsAdded'));
$engine->log(4, "Created a new group //'{$_POST['newname']}'//");
unset($_POST['create']);
}
}
// edit group
else if (isset($_POST['edit']) && isset($_POST['group_id']) && (isset($_POST['newname']) || isset($_POST['moderator'])))
{
// do we have identical names?
if ($engine->load_single(
"SELECT group_id FROM {$engine->config['table_prefix']}usergroup ".
"WHERE group_name = '".quote($engine->dblink, $_POST['newname'])."' AND group_id <> '".quote($engine->dblink, $_POST['group_id'])."' ".
"LIMIT 1"))
{
$engine->set_message($engine->get_translation('GroupsAlreadyExists'));
$_POST['change'] = $_POST['group_id'];
$_POST['edit'] = 1;
}
else
{
$engine->sql_query(
"UPDATE {$engine->config['table_prefix']}usergroup SET ".
"group_name = '".quote($engine->dblink, $_POST['newname'])."', ".
"description = '".quote($engine->dblink, $_POST['newdescription'])."', ".
"moderator = '".quote($engine->dblink, (int)$_POST['moderator'])."', ".
"open = '".quote($engine->dblink, (int)$_POST['open'])."', ".
"active = '".quote($engine->dblink, (int)$_POST['active'])."' ".
"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' ".
"LIMIT 1");
$engine->set_message($engine->get_translation('GroupsRenamed'));
$engine->log(4, "Group //'{$_POST['group_id']}'// renamed //'{$_POST['newname']}'//");
}
}
// delete group
else if (isset($_POST['delete']) && isset($_POST['group_id']))
{
$usergroup = $engine->load_single("SELECT group_name FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' LIMIT 1");
$engine->log(4, "Removed group //'{$usergroup['group_name']}'//");
$engine->sql_query(
"DELETE FROM {$engine->config['table_prefix']}usergroup ".
"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."'");
$engine->sql_query(
"DELETE FROM {$engine->config['table_prefix']}usergroup_member ".
"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."'");
$engine->set_message($engine->get_translation('GroupsDeleted'));
unset($_GET['group_id']);
unset($_POST['group_id']);
}
}
/////////////////////////////////////////////
// edit forms
/////////////////////////////////////////////
// add new group
if (isset($_POST['create']))
{
echo '';
}
// edit group
else if (isset($_POST['edit']) && isset($_POST['change']))
{
if ($usergroup = $engine->load_single("SELECT group_name, description, moderator, open, active FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['change'])."' LIMIT 1"))
{
echo '';
}
}
// delete group
if (isset($_POST['delete']) && isset($_POST['change']))
{
if ($usergroup = $engine->load_single("SELECT group_name FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['change'])."' LIMIT 1"))
{
echo '';
}
echo "";
}
?>
load_single(
"SELECT group_id, moderator, group_name FROM {$engine->config['table_prefix']}usergroup ".
"WHERE group_id = '".quote($engine->dblink, $group_id)."' ".
"LIMIT 1");
echo "".$engine->get_translation('GroupsMembersFor').": ".$usergroup['group_name']."
";
$members = $engine->load_all(
"SELECT m.user_id, user_name FROM {$engine->config['table_prefix']}usergroup g ".
"INNER JOIN {$engine->config['table_prefix']}usergroup_member m ON (g.group_id = m.group_id) ".
"INNER JOIN {$engine->config['table_prefix']}user u ON (m.user_id = u.user_id) ".
"WHERE g.group_id = '".quote($engine->dblink, $group_id)."' ");
?>
dblink, $_GET['moderator'])."' ";
}
// entries to display
$limit = 100;
// collecting data
$count = $engine->load_single(
"SELECT COUNT(group_name) AS n ".
"FROM {$engine->config['table_prefix']}usergroup ".
( $where ? $where : '' )
);
$pagination = $engine->pagination($count['n'], $limit, 'p', 'mode=groups&order='.isset($_GET['order']) ? htmlspecialchars($_GET['order'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : '', '', 'admin.php');
$groups = $engine->load_all(
"SELECT g.*, u.user_name, COUNT(m.user_id) AS members ".
"FROM {$engine->config['table_prefix']}usergroup g ".
"LEFT JOIN {$engine->config['table_prefix']}user u ON (g.moderator = u.user_id) ".
"LEFT JOIN ".$engine->config['table_prefix']."usergroup_member m ON (m.group_id = g.group_id) ".
( $where ? $where : '' ).
"GROUP BY g.group_id ".
( $order ? $order : 'ORDER BY group_id DESC ' ).
"LIMIT {$pagination['offset']}, $limit");
/////////////////////////////////////////////
// print list
/////////////////////////////////////////////
?>