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 '
'; echo ''; echo ''; echo ''; echo ''. ''; echo ''; echo '

'. ''. '

'; 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 '
'; echo ''; echo ''; echo ''."\n"; echo ''; echo ''; echo '
'. ' '. ''. '
'.$engine->get_translation('MembersDeleteInfo').''. '

'; 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 '
'; echo ''; echo ''; echo ''. ''. ''. ''. ''. ''; echo ''. ''. ''. ''; echo ''; echo '

'. ''. '

'; 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 '
'; echo ''; echo ''."\n"; echo ''; echo ''. ''. ''. ''. ''. ''; echo ''. ''. ''. ''; echo ''; echo '

'. ''. '
'.$engine->get_translation('GroupsRenameInfo').''. '

'; 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 ''; echo ''."\n"; echo ''; echo ''; echo '
'. ' '. ''. '
'.$engine->get_translation('GroupsDeleteInfo').''. '

'; 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)."' "); ?>
'."\n". ''. ''. ''. ''; } ?>
ID Username
'.$member['user_id'].''.$member['user_name'].'
'; echo ' '; echo ''; ?>
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 ///////////////////////////////////////////// ?>
'; $control_buttons .= ' '; $control_buttons .= ' '; echo $control_buttons; if (isset($pagination['text'])) { echo '
'.( $pagination['text'] == true ? ''.$pagination['text'].'' : ' ' ).'
'."\n"; } ?> '."\n". ''. ''. ''. ''. ''. ''. ''. ''. ''. ''; } } else { echo ''; } ?>
ID Group Description Moderator Members Open Active Created
'.$row['group_id'].''.$row['group_name'].''.$row['description'].''.$row['user_name'].''.$row['members'].''.$row['open'].''.$row['active'].''.date($engine->config['date_precise_format'], strtotime($row['created'])).'

No groups that meet the criteria
'.( $pagination['text'] == true ? ''.$pagination['text'].'' : '' ).''."\n"; ///////////////////////////////////////////// // control buttons ///////////////////////////////////////////// echo $control_buttons; ?>