LOL
Ik zou graag me leden nummers ervoor krijgen.
Dit is het TPL
Code: Selecteer alles
<script language="javascript" type="text/javascript">
<!--
function handleClick(id) {
var obj = "";
// Check browser compatibility
if(document.getElementById)
obj = document.getElementById(id);
else if(document.all)
obj = document.all[id];
else if(document.layers)
obj = document.layers[id];
else
return 1;
if (!obj) {
return 1;
}
else if (obj.style)
{
obj.style.display = ( obj.style.display != "none" ) ? "none" : "";
}
else
{
obj.visibility = "show";
}
}
//-->
</script>
<h1>{L_TITLE}</h1>
<p>{L_DESCRIPTION}</p>
<form action="{S_ACTION}" method="post">
<table width="100%" cellpadding="3" cellspacing="1 border="0">
<tr>
<td width="100%"> </td>
<td align="right" nowrap="nowrap"><span class="gen">{L_SORT_BY}</td>
<td nowrap="nowrap"><select name="sort" class="post">
<option value="user_id">{L_USER_ID}</option>
<option value="user_active">{L_ACTIVE}</option>
<option value="username">{L_USERNAME}</option>
<option value="user_regdate">{L_JOINED}</option>
<option value="user_session_time">{L_ACTIVTY}</option>
<option value="user_level">{L_USER_LEVEL}</option>
<option value="user_posts">{L_POSTS}</option>
<option value="user_rank">{L_RANK}</option>
<option value="user_email">{L_EMAIL}</option>
</select></td>
<td nowrap="nowrap"><select name="order" class="post">
<option value="ASC">{L_ASCENDING}</option>
<option value="DESC">{L_DESCENDING}</option>
</select></td>
<td nowrap="nowrap"><span class="gen">{L_SHOW}</span></td>
<td nowrap="nowrap"><input type="text" size="5" value="{S_SHOW}" name="show"></td>
<td nowrap="nowrap"><input type="submit" value="{S_SORT}" name="change_sort" class="liteoption"></td>
</tr>
</table>
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<!-- BEGIN alphanumsearch -->
<td align="left" width="{alphanumsearch.SEARCH_SIZE}"><span class="nav">
<a href="{alphanumsearch.SEARCH_LINK}" class="genmed">{alphanumsearch.SEARCH_TERM}</a>
</span></td>
<!-- END alphanumsearch -->
</tr>
</table>
<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
<tr>
<th width="13%">nummer</th>
<th width="13%"> </th>
<th width="22%">{L_USERNAME}</th>
<th width="22%">{L_ACTIVE}</th>
<th width="22%">{L_JOINED}</th>
<th width="22%">{L_ACTIVTY}</th>
</tr>
<!-- BEGIN user_row -->
<tr>
<td class="{user_row.ROW_CLASS}"><span class="gen">{userrow.NUMBER}</span></td>
<td class="{user_row.ROW_CLASS}" nowrap="nowrap"><input type="checkbox" name="{S_USER_VARIABLE}[]" value="{user_row.USER_ID}"> <a href="javascript:handleClick('user{user_row.USER_ID}');">{L_OPEN_CLOSE}</a></td>
<td class="{user_row.ROW_CLASS}"><span class="gen" {user_row.STYLE_COLOR}><b><a href="{user_row.U_PROFILE}" class="gen" target="_blank" {user_row.STYLE_COLOR}>{user_row.USERNAME}</a></b></span></td>
<td class="{user_row.ROW_CLASS}"><span class="gen">{user_row.ACTIVE}</span></td>
<td class="{user_row.ROW_CLASS}"><span class="gen">{user_row.JOINED}</span></td>
<td class="{user_row.ROW_CLASS}"><span class="gen">{user_row.LAST_ACTIVITY}</span></td>
</tr>
<tr id="user{user_row.USER_ID}" style="display: none">
<td class="{user_row.ROW_CLASS}" width="13%"> </td>
<td class="{user_row.ROW_CLASS}" colspan="4" width="100%">
<table width="100%" cellpadding="3" cellspacing="1" border="0">
<tr>
<td class="{user_row.ROW_CLASS}" width="33%"><span class="gen"><b>{L_RANK}:</b> {user_row.RANK} {user_row.I_RANK}</td>
<td class="{user_row.ROW_CLASS}" width="34%"><span class="gen"><b>{L_GROUP}:</b>
<!-- BEGIN group_row -->
<a href="{user_row.group_row.U_GROUP}" class="gen" target="_blank">{user_row.group_row.GROUP_NAME}</a> ({user_row.group_row.GROUP_STATUS})<br />
<!-- END group_row -->
<!-- BEGIN no_group_row -->
{user_row.no_group_row.L_NONE}<br />
<!-- END no_group_row -->
</span></td>
<td class="{user_row.ROW_CLASS}" width="33%"><span class="gen"><b>{L_POSTS}:</b> {user_row.POSTS} <a href="{user_row.U_SEARCH}" class="gen" target="_blank">{L_FIND_ALL_POSTS}</a></span></td>
</tr>
<tr>
<td class="{user_row.ROW_CLASS}" colspan="3"><span class="gen"><b>{L_WEBSITE}:</b> <a href="{user_row.U_WEBSITE}" class="gen" target="_blank">{user_row.U_WEBSITE}</a></span></td>
</tr>
<tr>
<td class="{user_row.ROW_CLASS}"><span class="gen">
<a href="{user_row.U_MANAGE}" class="gen">{L_MANAGE}</a><br />
<a href="{user_row.U_PERMISSIONS}" class="gen">{L_PERMISSIONS}</a><br />
<a href="mailto:{user_row.EMAIL}" class="gen">{L_EMAIL}</a><br />
<a href="{user_row.U_PM}" class="gen">{L_PM}</a>
</span></td>
<td colspan="2" class="{user_row.ROW_CLASS}">{user_row.I_AVATAR}</td>
</tr>
</table>
</td>
</tr>
<!-- END user_row -->
<tr>
<td class="catbottom" colspan="8">
<select name="mode" class="post">
<option value="">{L_SELECT}</option>
<option value="delete">{L_DELETE}</option>
<option value="ban">{L_BAN}</option>
<option value="activate">{L_ACTIVATE_DEACTIVATE}</option>
<option value="group">{L_ADD_GROUP}</option>
</select>
<input type="submit" name="go" value="{L_GO}" class="mainoption">
</td>
</tr>
</table>
<table width="100%" cellpadding="3" cellspacing="1" border="0">
<tr>
<td align="left" width="50%"><span class="gen">{PAGE_NUMBER}</span></td>
<td align="right" width="50%"><span class="gen">{PAGINATION}</span></td>
</tr>
</table>
</form>
<br clear="all" />Code: Selecteer alles
<td class="{user_row.ROW_CLASS}"><span class="gen">{userrow.NUMBER}</span></td>Code: Selecteer alles
<th width="13%">nummer</th>Nu moet ik iets in me .PHP toevoegen.
Zoiets dacht ik:
Code: Selecteer alles
'NUMBER' => ($start + $i + 1),Dit is me php
Code: Selecteer alles
<?php
/***************************************************************************
* admin_userlist.php
* -------------------
* begin : Tuesday, 09 Feburary 2004
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', 1);
if( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Users']['Userlist'] = $filename;
return;
}
$phpbb_root_path = './../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
//
// Set mode
//
if( isset( $HTTP_POST_VARS['mode'] ) || isset( $HTTP_GET_VARS['mode'] ) )
{
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
$mode = '';
}
//
// confirm
//
if( isset( $HTTP_POST_VARS['confirm'] ) || isset( $HTTP_GET_VARS['confirm'] ) )
{
$confirm = true;
}
else
{
$confirm = false;
}
//
// cancel
//
if( isset( $HTTP_POST_VARS['cancel'] ) || isset( $HTTP_GET_VARS['cancel'] ) )
{
$cancel = true;
$mode = '';
}
else
{
$cancel = false;
}
//
// get starting position
//
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
//
// get show amount
//
if ( isset($HTTP_GET_VARS['show']) || isset($HTTP_POST_VARS['show']) )
{
$show = ( isset($HTTP_POST_VARS['show']) ) ? $HTTP_POST_VARS['show'] : $HTTP_GET_VARS['show'];
}
else
{
$show = $board_config['posts_per_page'];
}
//
// sort method
//
if ( isset($HTTP_GET_VARS['sort']) || isset($HTTP_POST_VARS['sort']) )
{
$sort = ( isset($HTTP_POST_VARS['sort']) ) ? htmlspecialchars($HTTP_POST_VARS['sort']) : htmlspecialchars($HTTP_GET_VARS['sort']);
}
else
{
$sort = 'user_regdate';
}
//
// sort order
//
if( isset($HTTP_POST_VARS['order']) )
{
$sort_order = ( $HTTP_POST_VARS['order'] == 'ASC' ) ? 'ASC' : 'DESC';
}
else if( isset($HTTP_GET_VARS['order']) )
{
$sort_order = ( $HTTP_GET_VARS['order'] == 'ASC' ) ? 'ASC' : 'DESC';
}
else
{
$sort_order = 'ASC';
}
//
// alphanumeric stuff
//
if ( isset($HTTP_GET_VARS['alphanum']) || isset($HTTP_POST_VARS['alphanum']) )
{
$alphanum = ( isset($HTTP_POST_VARS['alphanum']) ) ? $HTTP_POST_VARS['alphanum'] : $HTTP_GET_VARS['alphanum'];
switch( $dbms )
{
case 'postgres':
$alpha_where = ( $alphanum == '#' ) ? "AND username !~ '^[A-Z]+'" : "AND username ILIKE '$alphanum%'";
break;
default:
$alpha_where = ( $alphanum == '#' ) ? "AND username NOT RLIKE '^[A-Z]'" : "AND username LIKE '$alphanum%'";
break;
}
}
else
{
$alpahnum = '';
$alpha_where = '';
}
$user_ids = array();
//
// activate/de-activate users id
// because it is an array we will intval() it when we use it
//
if ( isset($HTTP_POST_VARS[POST_USERS_URL]) || isset($HTTP_GET_VARS[POST_USERS_URL]) )
{
$user_ids = ( isset($HTTP_POST_VARS[POST_USERS_URL]) ) ? $HTTP_POST_VARS[POST_USERS_URL] : $HTTP_GET_VARS[POST_USERS_URL];
}
else
{
unset($user_ids);
}
switch( $mode )
{
case 'delete':
//
// see if cancel has been hit and redirect if it has
// shouldn't get to this point if it has been hit but
// do this just in case
//
if ( $cancel )
{
redirect($phpbb_root_path . 'admin/admin_userlist.'.$phpEx);
}
//
// check confirm and either delete or show confirm message
//
if ( !$confirm )
{
// show message
$i = 0;
$hidden_fields = '';
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';
unset($user_id);
$i++;
}
$template->set_filenames(array(
'body' => 'confirm_body.tpl')
);
$template->assign_vars(array(
'MESSAGE_TITLE' => $lang['Delete'],
'MESSAGE_TEXT' => $lang['Confirm_user_deleted'],
'U_INDEX' => '',
'L_INDEX' => '',
'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=delete'),
'S_HIDDEN_FIELDS' => $hidden_fields)
);
}
else
{
// delete users
$i = 0;
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$sql = "SELECT u.username, g.group_id
FROM " . USERS_TABEL . " u, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = $user_id
AND g.group_id = ug.group_id
AND g.group_single_user = 1";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = " . DELETED . ", post_username = '" . $row['username'] . "'
WHERE poster_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_poster = " . DELETED . "
WHERE topic_poster = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . VOTE_USERS_TABLE . "
SET vote_user_id = " . DELETED . "
WHERE vote_user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT group_id
FROM " . GROUPS_TABLE . "
WHERE group_moderator = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
}
while ( $row_group = $db->sql_fetchrow($result) )
{
$group_moderator[] = $row_group['group_id'];
}
if ( count($group_moderator) )
{
$update_moderator_id = implode(', ', $group_moderator);
$sql = "UPDATE " . GROUPS_TABLE . "
SET group_moderator = " . $userdata['user_id'] . "
WHERE group_moderator IN ($update_moderator_id)";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
}
}
$sql = "DELETE FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . GROUPS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . BANLIST_TABLE . "
WHERE ban_userid = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_from_userid = $user_id
OR privmsgs_to_userid = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);
}
// This little bit of code directly from the private messaging section.
while ( $row_privmsgs = $db->sql_fetchrow($result) )
{
$mark_list[] = $row_privmsgs['privmsgs_id'];
}
if ( count($mark_list) )
{
$delete_sql_id = implode(', ', $mark_list);
$delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . "
WHERE privmsgs_text_id IN ($delete_sql_id)";
$delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_id IN ($delete_sql_id)";
if ( !$db->sql_query($delete_sql) )
{
message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql);
}
if ( !$db->sql_query($delete_text_sql) )
{
message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql);
}
}
unset($user_id);
$i++;
}
$message = $lang['User_deleted_successfully'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
break;
case 'ban':
//
// see if cancel has been hit and redirect if it has
// shouldn't get to this point if it has been hit but
// do this just in case
//
if ( $cancel )
{
redirect($phpbb_root_path . 'admin/admin_userlist.'.$phpEx);
}
//
// check confirm and either ban or show confirm message
//
if ( !$confirm )
{
$i = 0;
$hidden_fields = '';
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';
unset($user_id);
$i++;
}
$template->set_filenames(array(
'body' => 'confirm_body.tpl')
);
$template->assign_vars(array(
'MESSAGE_TITLE' => $lang['Ban'],
'MESSAGE_TEXT' => $lang['Confirm_user_ban'],
'U_INDEX' => '',
'L_INDEX' => '',
'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=ban'),
'S_HIDDEN_FIELDS' => $hidden_fields)
);
}
else
{
// ban users
$i = 0;
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$sql = "INSERT INTO " . BANLIST_TABLE . " ( ban_userid )
VALUES ( '$user_id' )";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ban user', '', __LINE__, __FILE__, $sql);
}
unset($user_id);
$i++;
}
$message = $lang['User_banned_successfully'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
break;
case 'activate':
//
// activate or deactive the seleted users
//
$i = 0;
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$sql = "SELECT user_active FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$new_status = ( $row['user_active'] ) ? 0 : 1;
$sql = "UPDATE " . USERS_TABLE . "
SET user_active = '$new_status'
WHERE user_id = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user status', '', __LINE__, __FILE__, $sql);
}
unset($user_id);
$i++;
}
$message = $lang['User_status_updated'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
break;
case 'group':
//
// add users to a group
//
if ( !$confirm )
{
// show form to select which group to add users to
$i = 0;
$hidden_fields = '';
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';
unset($user_id);
$i++;
}
$template->set_filenames(array(
'body' => 'admin/userlist_group.tpl')
);
$template->assign_vars(array(
'MESSAGE_TITLE' => $lang['Add_group'],
'MESSAGE_TEXT' => $lang['Add_group_explain'],
'L_GROUP' => $lang['Group'],
'S_GROUP_VARIABLE' => POST_GROUPS_URL,
'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx.'?mode=group'),
'L_GO' => $lang['Go'],
'L_SELECT' => $lang['Select_one'],
'S_HIDDEN_FIELDS' => $hidden_fields)
);
$sql = "SELECT group_id, group_name FROM " . GROUPS_TABLE . "
WHERE group_single_user <> " . TRUE . "
ORDER BY group_name";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $sql);
}
// loop through groups
while ( $row = $db->sql_fetchrow($result) )
{
$template->assign_block_vars('grouprow',array(
'GROUP_NAME' => $row['group_name'],
'GROUP_ID' => $row['group_id'])
);
}
}
else
{
// add the users to the selected group
$group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]);
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$i = 0;
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
//
// For security, get the ID of the group moderator.
//
switch(SQL_LAYER)
{
/*case 'postgresql':
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
WHERE g.group_id = $group_id
AND aa.group_id = g.group_id
UNION (
SELECT g.group_moderator, g.group_type, NULL
FROM " . GROUPS_TABLE . " g
WHERE g.group_id = $group_id
AND NOT EXISTS (
SELECT aa.group_id
FROM " . AUTH_ACCESS_TABLE . " aa
WHERE aa.group_id = g.group_id
)
)";
break;*/
case 'oracle':
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
WHERE g.group_id = $group_id
AND aa.group_id = g.group_id(+)";
break;
default:
$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
FROM ( " . GROUPS_TABLE . " g
LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
WHERE g.group_id = $group_id";
break;
}
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get moderator information', '', __LINE__, __FILE__, $sql);
}
$group_info = $db->sql_fetchrow($result);
$sql = "SELECT user_id, user_email, user_lang, user_level
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$sql = "SELECT ug.user_id, u.user_level
FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
WHERE u.user_id = " . $row['user_id'] . "
AND ug.user_id = u.user_id
AND ug.group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE__, __FILE__, $sql);
}
if ( !($db->sql_fetchrow($result)) )
{
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
VALUES (" . $row['user_id'] . ", $group_id, 0)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not add user to group', '', __LINE__, __FILE__, $sql);
}
if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . MOD . "
WHERE user_id = " . $row['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
}
//
// Get the group name
// Email the user and tell them they're in the group
//
$group_sql = "SELECT group_name
FROM " . GROUPS_TABLE . "
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($group_sql)) )
{
message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql);
}
$group_name_row = $db->sql_fetchrow($result);
$group_name = $group_name_row['group_name'];
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('group_added', $row['user_lang']);
$emailer->email_address($row['user_email']);
$emailer->set_subject($lang['Group_added']);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'GROUP_NAME' => $group_name,
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',
'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id")
);
$emailer->send();
$emailer->reset();
}
unset($user_id);
$i++;
}
}
break;
default:
//
// get and display all of the users
//
$template->set_filenames(array(
'body' => 'admin/userlist_body.tpl')
);
//
// lets for alphanum
//
$alpha_range = range('A','Z');
$alphanum_range = array_merge(array('' => 'All'),array('%23' => '#'),$alpha_range);
foreach ( $alphanum_range as $key => $alpha )
{
if ( in_array($alpha,$alpha_range) ) $key = $alpha;
$alphanum_search_url = append_sid($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show&alphanum=" . strtolower($key));
$template->assign_block_vars('alphanumsearch', array(
'SEARCH_SIZE' => floor(100/count($alphanum_range)) . '%',
'SEARCH_TERM' => $alpha,
'SEARCH_LINK' => $alphanum_search_url)
);
}
//
// set up template varibles
//
$template->assign_vars(array(
'L_TITLE' => $lang['Userlist'],
'L_DESCRIPTION' => $lang['Userlist_description'],
'L_OPEN_CLOSE' => $lang['Open_close'],
'L_ACTIVE' => $lang['Active'],
'L_USERNAME' => $lang['Username'],
'L_GROUP' => $lang['Group'],
'L_RANK' => $lang['Rank'],
'L_POSTS' => $lang['Posts'],
'L_FIND_ALL_POSTS' => $lang['Find_all_posts'],
'L_JOINED' => $lang['Joined'],
'L_ACTIVTY' => $lang['Last_activity'],
'L_MANAGE' => $lang['User_manage'],
'L_PERMISSIONS' => $lang['Permissions'],
'L_EMAIL' => $lang['Email'],
'L_PM' => $lang['Private_Message'],
'L_WEBSITE' => $lang['Website'],
'S_USER_VARIABLE' => POST_USERS_URL,
'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx),
'L_GO' => $lang['Go'],
'L_SELECT' => $lang['Select_one'],
'L_DELETE' => $lang['Delete'],
'L_BAN' => $lang['Ban'],
'L_ACTIVATE_DEACTIVATE' => $lang['Activate_deactivate'],
'L_ADD_GROUP' => $lang['Add_group'],
'S_SHOW' => $show,
'L_SORT_BY' => $lang['Sort_by'],
'L_USER_ID' => $lang['User_id'],
'L_USER_LEVEL' => $lang['User_level'],
'L_ASCENDING' => $lang['Ascending'],
'L_DESCENDING' => $lang['Descending'],
'L_SHOW' => $lang['Show'],
'S_SORT' => $lang['Sort'])
);
$order_by = "ORDER BY $sort $order ";
$sql = "SELECT *
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
$alpha_where
$order_by
LIMIT $start, $show";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
// loop through users
$i = 1;
while ( $row = $db->sql_fetchrow($result) )
{
//
// users avatar
//
$avatar_img = '';
if ( $row['user_avatar_type'] && $row['user_allowavatar'] )
{
switch( $row['user_avatar_type'] )
{
case USER_AVATAR_UPLOAD:
$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_REMOTE:
$avatar_img = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_GALLERY:
$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
}
}
//
// users rank
//
$rank_sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY rank_special, rank_min";
if ( !($rank_result = $db->sql_query($rank_sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql);
}
while ( $rank_row = $db->sql_fetchrow($rank_result) )
{
$ranksrow[] = $rank_row;
}
$db->sql_freeresult($rank_result);
$poster_rank = '';
$rank_image = '';
if ( $row['user_rank'] )
{
for($ji = 0; $ji < count($ranksrow); $ji++)
{
if ( $row['user_rank'] == $ranksrow[$ji]['rank_id'] && $ranksrow[$ji]['rank_special'] )
{
$poster_rank = $ranksrow[$ji]['rank_title'];
$rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '<img src="' . $phpbb_root_path . $ranksrow[$ji]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
}
}
}
else
{
for($ji = 0; $ji < count($ranksrow); $ji++)
{
if ( $row['user_posts'] >= $ranksrow[$ji]['rank_min'] && !$ranksrow[$ji]['rank_special'] )
{
$poster_rank = $ranksrow[$ji]['rank_title'];
$rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '<img src="' . $phpbb_root_path . $ranksrow[$ji]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
}
}
}
//
// user's color depending on their level
//
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
//
// setup user row template varibles
//
$template->assign_block_vars('user_row', array(
'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
'USER_ID' => $row['user_id'],
'ACTIVE' => ( $row['user_active'] == TRUE ) ? $lang['Yes'] : $lang['No'],
'STYLE_COLOR' => $style_color,
'USERNAME' => $row['username'],
'U_PROFILE' => append_sid($phpbb_root_path . 'profile.'.$phpEx.'?mode=viewprofile&' . POST_USERS_URL . '=' . $row['user_id']),
'RANK' => $poster_rank,
'I_RANK' => $rank_image,
'I_AVATAR' => $avatar_img,
'JOINED' => create_date('d M Y', $row['user_regdate'], $board_config['board_timezone']),
'LAST_ACTIVITY' => ( !empty($row['user_session_time']) ) ? create_date('d M Y', $row['user_session_time'], $board_config['board_timezone']) : $lang['Never'],
'POSTS' => ( $row['user_posts'] ) ? $row['user_posts'] : 0,
'U_SEARCH' => append_sid($phpbb_root_path . 'search.'.$phpEx.'?search_author=' . urlencode(strip_tags($row['username'])) . '&showresults=posts'),
'U_WEBSITE' => ( $row['user_website'] ) ? $row['user_website'] : '',
'EMAIL' => $row['user_email'],
'U_PM' => append_sid($phpbb_root_path . 'privmsg.' . $phpEx . '?mode=post&' . POST_USERS_URL . '='. $row['user_id']),
'U_MANAGE' => append_sid($phpbb_root_path . 'admin/admin_users.'.$phpEx.'?mode=edit&' . POST_USERS_URL . '=' . $row['user_id']),
'U_PERMISSIONS' => append_sid($phpbb_root_path . 'admin/admin_ug_auth.'.$phpEx.'?mode=user&' . POST_USERS_URL . '=' . $row['user_id']))
);
//
// get the users group information
//
$group_sql = "SELECT * FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = " . $row['user_id'] . "
AND g.group_single_user <> 1
AND g.group_id = ug.group_id";
if( !($group_result = $db->sql_query($group_sql)) )
{
message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $group_sql);
}
$g = 0;
while ( $group_row = $db->sql_fetchrow($group_result) )
{
//
// assign the group varibles
//
if ( $group_row['group_moderator'] == $row['user_id'] )
{
$group_status = $lang['Moderator'];
}
else if ( $group_row['user_pending'] == true )
{
$group_status = $lang['Pending'];
}
else
{
$group_status = $lang['Member'];
}
$template->assign_block_vars('user_row.group_row', array(
'GROUP_NAME' => $group_row['group_name'],
'GROUP_STATUS' => $group_status,
'U_GROUP' => $phpbb_root_path . 'groupcp.'.$phpEx.'?'.POST_GROUPS_URL.'='.$group_row['group_id'])
);
$g++;
}
if ( $g == 0 )
{
$template->assign_block_vars('user_row.no_group_row', array(
'L_NONE' => $lang['None'])
);
}
$i++;
}
$db->sql_freeresult($result);
$count_sql = "SELECT count(user_id) AS total
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . " $alpha_where";
if ( !($count_result = $db->sql_query($count_sql)) )
{
message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql);
}
if ( $total = $db->sql_fetchrow($count_result) )
{
$total_members = $total['total'];
$pagination = generate_pagination($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show" . ( ( isset($alphanum) ) ? "&alphanum=$alphanum" : '' ), $total_members, $show, $start);
}
$template->assign_vars(array(
'PAGINATION' => $pagination,
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $show ) + 1 ), ceil( $total_members / $show )))
);
break;
} // switch()
$template->pparse('body');
include('./page_footer_admin.'.$phpEx);
?>