Mass Delete Users
-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
Mass Delete Users
с проблемой 01.01.1970 я так понял сталкивались многие
как ее решить в Mass Delete Users?
дата последнего посещения юзера у всех показывается 01.01.1970
это зависит от сервера?
сейчас у меня windows, потом буду переносить на linux
Ссылка на скачивание
как ее решить в Mass Delete Users?
дата последнего посещения юзера у всех показывается 01.01.1970
это зависит от сервера?
сейчас у меня windows, потом буду переносить на linux
Ссылка на скачивание
-
- phpBB Plus
- Сообщения: 442
- Стаж: 20 лет 11 месяцев
- Откуда: КПРФ ;)
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
со всем разобрался (в коде было несколько описок)
выкладываю свежую рабочую версию мода
не забудьте исправить $phpbb_root_path
admin_mass_delete_users.php
admin_mass_delete_users.tpl
lang_admin_mass_user_delete.php
выкладываю свежую рабочую версию мода
не забудьте исправить $phpbb_root_path
admin_mass_delete_users.php
Код: Выделить всё
<?php
/***************************************************************************
* admin_mass_delete_users.php
* -------------------
* begin : Sunday, July 27th, 2003
* copyright : (C) 2003 Antony Bailey & Freakin' Booty ;-P
* email : santony_bailey@lycos.co.uk
*
***************************************************************************/
/***************************************************************************
*
* 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);
//
// First we do the setmodules stuff for the admin cp.
//
if( !empty($setmodules) )
{
$filename = basename(__FILE__);
// Begin PNphpBB2 Module
$module['Users']['Mass Delete Users'] = $filename;
//End PNphpBB2 Module
return;
}
// Begin PNphpBB2 Module
$phpbb_root_path = '../../f/';
require($phpbb_root_path . 'extension.inc');
require($phpbb_root_path . 'admin/pagestart.' . $phpEx);
require($phpbb_root_path . 'includes/bbcode.'.$phpEx);
require($phpbb_root_path . 'includes/functions_post.'.$phpEx);
require($phpbb_root_path . 'includes/functions_selects.'.$phpEx);
require($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
include($phpbb_root_path.'language/lang_' . $board_config['default_lang'] .
'/lang_admin_mass_user_delete.'.$phpEx);
//End PNphpBB2 Module
//
// Delete the users
//
if( $HTTP_POST_VARS['deleteusers'] && $HTTP_POST_VARS['users'] )
{
$user_list = $HTTP_POST_VARS['users'];
for( $i = 0; $i < count($user_list); $i++ )
{
// Begin PNphpBB2 Module
$this_userdata = get_userdata($user_list[$i]);
// End PNphpBB2 Module
//
// Do not delete admins! Let the person make the admins a user first!
//
if( $this_userdata['user_level'] == ADMIN )
{
message_die(GENERAL_MESSAGE, $lang['First_make_admin_user']);
}
$sql = "SELECT g.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE .
" g
WHERE ug.user_id = " . $this_userdata['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 = '$username'
WHERE poster_id = " . $this_userdata['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 = " . $this_userdata['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 = " . $this_userdata['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 = " . $this_userdata['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 = " . $this_userdata['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 = " . $this_userdata['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 = " . $this_userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from topic watch
table', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE ( ( privmsgs_from_userid = " .
$this_userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_NEW_MAIL .
" )
OR ( privmsgs_from_userid = " .
$this_userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_SENT_MAIL
. " )
OR ( privmsgs_to_userid = " .
$this_userdata['user_id'] . "
AND privmsgs_type = " . PRIVMSGS_READ_MAIL
. " )
OR ( privmsgs_to_userid = " .
$this_userdata['user_id'] . "
AND privmsgs_type = " .
PRIVMSGS_SAVED_IN_MAIL . " )
OR ( privmsgs_from_userid = " .
$this_userdata['user_id'] . "
AND privmsgs_type = " .
PRIVMSGS_SAVED_OUT_MAIL . " ) )";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not select all user\'s private
messages', '', __LINE__, __FILE__, $sql);
}
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);
}
}
$sql = "UPDATE " . PRIVMSGS_TABLE . "
SET privmsgs_to_userid = " . DELETED . "
WHERE privmsgs_to_userid = " . $this_userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update private messages
saved to the user', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . PRIVMSGS_TABLE . "
SET privmsgs_from_userid = " . DELETED . "
WHERE privmsgs_from_userid = " . $this_userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update private messages
saved from the user', '', __LINE__, __FILE__, $sql);
}
}
$message = $lang['Mass_delete_done'] . '<br /><br />' .
sprintf($lang['Return_Mass_User_delete'], '<a href="' . append_sid("admin_mass_delete_users.$phpEx")
. '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' .
append_sid("index.$phpEx?pane=right") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
//
// Default page
//
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
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';
}
$mode_types_text = array($lang['Sort_Joined'], $lang['Lastvisit'], $lang['Sort_Username'],
$lang['Sort_Location'], $lang['Sort_Posts'], $lang['Sort_Email'], $lang['Sort_Website'],
$lang['Sort_Top_Ten']);
$mode_types = array('joindate', 'lastvisit', 'username', 'location', 'posts', 'email', 'website', 'topten');
$select_sort_mode = '<select name="mode">';
for($i = 0; $i < count($mode_types_text); $i++)
{
$selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : '';
$select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' .
$mode_types_text[$i] . '</option>';
}
$select_sort_mode .= '</select>';
$select_sort_order = '<select name="order">';
if($sort_order == 'ASC')
{
$select_sort_order .= '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] .
'</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
}
else
{
$select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option
value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
}
$select_sort_order .= '</select>';
//
// Assign template
//
$template->set_filenames(array(
'body' => 'admin/admin_mass_delete_users.tpl')
);
$template->assign_vars(array(
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_USERNAME' => $lang['Username'],
'L_LASTVISIT' => $lang['Lastvisit'],
'L_ADMIN_MASS_DELETE_USERS' => $lang['Admin_mass_delete_users'],
'L_MASS_DELETE_USERS' => $lang['Mass_Delete_Users'],
'L_MASS_DELETE_USERS_EXPLAIN' => $lang['Mass_Delete_Users_Explain'],
'L_PM' => $lang['Private_Message'],
'L_EMAIL' => $lang['Email'],
'L_WEBSITE' => $lang['Website'],
'L_FROM' => $lang['Location'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_SUBMIT' => $lang['Sort'],
'L_JOINED' => $lang['Joined'],
'L_POSTS' => $lang['Posts'],
'L_POST_TIME' => $lang['Last_Post'],
'L_MARK' => $lang['Mark'],
'L_MARK_ALL' => $lang['Mark_all'],
'L_UNMARK_ALL' => $lang['Unmark_all'],
'S_MODE_SELECT' => $select_sort_mode,
'S_ORDER_SELECT' => $select_sort_order,
'S_MODE_ACTION' => append_sid("admin_mass_delete_users.$phpEx"))
);
if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] :
$HTTP_GET_VARS['mode'];
switch( $mode )
{
case 'joindate':
$order_by = "user_regdate $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'lastvisit':
$order_by = "user_lastvisit $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'username':
$order_by = "username $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'location':
$order_by = "user_from $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'posts':
$order_by = "user_posts $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'email':
$order_by = "user_email $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'website':
$order_by = "user_website $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
case 'topten':
$order_by = "user_posts DESC LIMIT 10";
break;
default:
$order_by = "user_regdate $sort_order LIMIT $start, " .
$board_config['topics_per_page'];
break;
}
}
else
{
$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
}
//
// Fetch userdata
//
$sql = "SELECT username, user_id, user_viewemail, user_posts, user_lastvisit, user_regdate, user_from,
user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type,
user_allowavatar
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY $order_by";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$i = 0;
do
{
//
// Last Post Data
//
$post_time_sql = "SELECT post_time
FROM " . POSTS_TABLE . "
WHERE poster_id = " . $row['user_id'] . "
ORDER BY post_time DESC
LIMIT 1";
if ( !($post_time_result = $db->sql_query($post_time_sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user last post time', '', __LINE__, __FILE__,
$post_time_sql);
}
$post_time_row = $db->sql_fetchrow($post_time_result);
$last_post_time = ( isset($post_time_row['post_time']) ) ?
create_date($board_config['default_dateformat'], $post_time_row['post_time'],
$board_config['board_timezone']) : $lang['None'];
$lastvisit = create_date($lang['DATE_FORMAT'], $row['user_lastvisit'],
$board_config['board_timezone']);
$username = $row['username'];
$user_id = $row['user_id'];
$from = ( !empty($row['user_from']) ) ? $row['user_from'] : ' ';
$joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'],
$board_config['board_timezone']);
$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
$email_uri = ( $board_config['board_email_form'] ) ? append_sid($phpbb_root_path
. "profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id) : 'mailto:' . $row['user_email'];
$email_img = '<a href="' . $email_uri . '"><img src="' . $phpbb_root_path .
$images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>';
$email = '<a href="' . $email_uri . '">' . $lang['Send_email'] . '</a>';
$temp_url = append_sid($phpbb_root_path . "privmsg.$phpEx?mode=post&" .
POST_USERS_URL . "=$user_id");
$pm_img = '<a href="' . $temp_url . '"><img src="' . $phpbb_root_path .
$images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] .
'" border="0" /></a>';
$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
$www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '"
target="_userwww"><img src="' . $phpbb_root_path . $images['icon_www'] . '" alt="' .
$lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
$www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '"
target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
$temp_url = append_sid($phpbb_root_path . "search.$phpEx?search_author=" .
urlencode($username) . "&showresults=posts");
$search_img = '<a href="' . $temp_url . '"><img src="' . $phpbb_root_path .
$images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '"
border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
// Begin PNphpBB2 Module
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
//End PNphpBB2 Module
$template->assign_block_vars('memberrow', array(
'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'USERNAME' => $username,
'USERID' => $user_id,
'FROM' => $from,
'LASTVISIT' => $lastvisit,
'LAST_POST_TIME' => $last_post_time,
'JOINED' => $joined,
'POSTS' => $posts,
'SEARCH_IMG' => $search_img,
'SEARCH' => $search,
'PM_IMG' => $pm_img,
'PM' => $pm,
'EMAIL_IMG' => $email_img,
'EMAIL' => $email,
'WWW_IMG' => $www_img,
'WWW' => $www,
'U_VIEWPROFILE' => append_sid($phpbb_root_path .
"profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
);
$i++;
}
while ( $row = $db->sql_fetchrow($result) );
}
if ( $mode != 'topten' || $board_config['topics_per_page'] < 10 )
{
$sql = "SELECT count(*) AS total
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__,
$sql);
}
if ( $total = $db->sql_fetchrow($result) )
{
$total_members = $total['total'];
$pagination =
generate_pagination("admin_mass_delete_users.$phpEx?mode=$mode&order=$sort_order",
$total_members, $board_config['topics_per_page'], $start) . ' ';
}
}
else
{
$pagination = ' ';
$total_members = 10;
}
$template->assign_vars(array(
'PAGINATION' => $pagination,
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page']
) + 1 ), ceil( $total_members / $board_config['topics_per_page'] )),
'L_GOTO_PAGE' => $lang['Goto_page'])
);
$template->pparse('body');
include('page_footer_admin.'.$phpEx);
?>
Код: Выделить всё
<table width="100%" border="0" cellpadding="3" cellspacing="1" border="0" class="forumline" bgcolor=""#ffffff">
<tr>
<td class="row2" align="center"><div class="maintitle">{L_ADMIN_MASS_DELETE_USERS}</div></td>
</tr><tr>
<td class="row2"><div class="genmed">{L_MASS_DELETE_USERS_EXPLAIN}</div></td>
</tr></table>
<script language="JavaScript" type="text/javascript">
<!--
function check_switch(val)
{
for( i = 0; i < document.post.elements.length; i++ )
{
document.post.elements[i].checked = val;
}
}
//-->
</script>
<form method="post" action="{S_MODE_ACTION}" name="post">
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="right" nowrap="nowrap"><span class="genmed">{L_SELECT_SORT_METHOD}: {S_MODE_SELECT} {L_ORDER} {S_ORDER_SELECT}
<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" />
</span></td>
</tr>
</table>
<table cellspacing="1" cellpadding="4" border="0" width="100%" align="center" class="forumline">
<tr>
<th height="25" class="thCornerL" nowrap="nowrap">#</th>
<th class="thTop" nowrap="nowrap"> {L_USERNAME} </th>
<th class="thTop" nowrap="nowrap"> {L_PM} </th>
<th class="thTop" nowrap="nowrap"> {L_EMAIL} </th>
<th class="thTop" nowrap="nowrap">{L_FROM}</th>
<th class="thTop" nowrap="nowrap">{L_POSTS}</th>
<th class="thTop" nowrap="nowrap">{L_POST_TIME}</th>
<th class="thTop" nowrap="nowrap">{L_JOINED}</th>
<th class="thTop" nowrap="nowrap">{L_LASTVISIT}</th>
<th class="thCornerR" nowrap="nowrap">{L_WEBSITE}</th>
<th class="thTop" nowrap="nowrap">{L_MARK}</th>
</tr>
<!-- BEGIN memberrow -->
<tr>
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"> {memberrow.ROW_NUMBER} </span></td>
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"><a href="{memberrow.U_VIEWPROFILE}" class="gen">{memberrow.USERNAME}</a></span></td>
<td class="{memberrow.ROW_CLASS}" align="center"> {memberrow.PM_IMG} </td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"> {memberrow.EMAIL_IMG} </td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.FROM}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.POSTS}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle" nowrap="nowrap"><span class="gensmall">{memberrow.LAST_POST_TIME}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle" nowrap="nowrap"><span class="gensmall">{memberrow.JOINED}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle" nowrap="nowrap"><span class="gensmall">{memberrow.LASTVISIT}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center">{memberrow.WWW_IMG}</td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen"><input type="checkbox" name="users[]" value="{memberrow.USERID}"></span></td>
</tr>
<!-- END memberrow -->
<tr>
<td class="catBottom" colspan="11" height="28" align="right"><input type="submit" name="deleteusers" value="{L_MASS_DELETE_USERS}" class="liteoption" /></td>
</tr>
</table>
<table width="100%" cellspacing="2" border="0" align="center" cellpadding="2">
<tr>
<td><span class="nav">{PAGINATION}</span></td>
<td align="right"><span class="nav"><a href="javascript:check_switch(true);" class="nav">{L_MARK_ALL}</a> :: <a href="javascript:check_switch();" class="nav">{L_UNMARK_ALL}</a></span></td>
</tr>
<tr>
<td><span class="nav">{PAGE_NUMBER}</span></td>
<td align="right"><span class="gensmall">{S_TIMEZONE}</span></td>
</tr>
</table></form>
Код: Выделить всё
<?php
/***************************************************************************
* lang_admin_mass_delete_users.php
* -------------------
* begin : Sunday, July 27th, 2003
* copyright : (C) 2003 Antony Bailey & Freakin' Booty ;-P
* email : santony_bailey@lycos.co.uk
*
***************************************************************************/
/***************************************************************************
*
* 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.
*
***************************************************************************/
$lang['Admin_mass_delete_users'] = 'Массовое удаление пользователей';
$lang['Mass_Delete_Users'] = 'Удалить отмеченных пользователей';
$lang['Mass_Delete_Users_Explain'] = 'На этой странице Вы можете производить удаление большого количества пользователей.';
$lang['Lastvisit'] = 'последнему посещению';
$lang['Mass_delete_done'] = 'Выбранные user/s были удалены.';
$lang['Return_Mass_User_delete'] = 'Нажмите %sЗдесь%s, чтобы возвратиться на страницу удаления пользователей';
$lang['First_make_admin_user'] = 'Извините, но Вы не можете удалить администратора. Для удаления выбранного пользователя, необходимо изменить статус администратора - на статус пользователя.';
?>
Последний раз редактировалось melnikaite 24.09.2005 2:28, всего редактировалось 3 раза.
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 19 лет 7 месяцев
-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
сори, еще одна описка
заменитена
и что бы по-русски в админке было добавьте в lang_russian/lang_admin.php
тем у кого уже стоял этот мод нужно просто заменить файлы
замените
Код: Выделить всё
// Begin PNphpBB2 Module
$phpbb_module['Users']['Mass Delete Users'] = $filename;
//End PNphpBB2 Module
Код: Выделить всё
// Begin PNphpBB2 Module
$module['Users']['Mass Delete Users'] = $filename;
//End PNphpBB2 Module
Код: Выделить всё
$lang['Mass Delete Users'] = 'Массовое удаление пользователей';
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 19 лет 7 месяцев
Спасибо за исправления. Ссылка стала отображаться, правда косяки еще остались. По порядку.
Первое:
Второе:
Заголовок утилиты и её описание отображены в таблице. Я конечно попытаюсь всё пофиксить своими силами, но для других, да и вообще, чтобы мод был полноценным, рекомендую доделать.
Добавлено спустя 1 час 13 минут 55 секунд:
Я тупо удалил кусок . $ModName . '' из admin_mass_delete_users.php и первый косяк перестал вылазить.
Первое:
Код: Выделить всё
Notice: Undefined variable: ModName in ...\phpBB2\admin\admin_mass_delete_users.php on line 35
Заголовок утилиты и её описание отображены в таблице. Я конечно попытаюсь всё пофиксить своими силами, но для других, да и вообще, чтобы мод был полноценным, рекомендую доделать.

Добавлено спустя 1 час 13 минут 55 секунд:
Я тупо удалил кусок . $ModName . '' из admin_mass_delete_users.php и первый косяк перестал вылазить.

-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
Код: Выделить всё
'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
);
Код: Выделить всё
'U_VIEWPROFILE' => append_sid($phpbb_root_path .
"profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
);
а все почему, а все потому что мод заточен под PNphpBB2

-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 19 лет 7 месяцев
melnikaite
Фиг с ним, дружище. Мы с тобой его и под простой phpBB2 отточим.
Для того и существует phpBB комьюнити. 
Полез я его мучать. Может где еще косячки найду.
8)
Добавлено спустя 8 минут 23 секунды:
Вооот, уже наковырял. При удалении пользователей пишет:
При этом, строчка 58:
Честно признаюсь, что она собой представляет, я не знаю.
Но подозреваю.
Как решать бум?
Фиг с ним, дружище. Мы с тобой его и под простой phpBB2 отточим.


Полез я его мучать. Может где еще косячки найду.

Добавлено спустя 8 минут 23 секунды:
Вооот, уже наковырял. При удалении пользователей пишет:
Код: Выделить всё
[b]Fatal error:[/b] Call to undefined function: phpbb_get_userdata() in .../admin/admin_mass_delete_users.php on line 58
Код: Выделить всё
$this_userdata = phpbb_get_userdata($user_list[$i]);

Как решать бум?
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
Замените phpbb_get_userdata на get_userdata.
А вообще, мод криво обновляет сообщения удаленных пользователей:
вместо
должно быть
А вообще, мод криво обновляет сообщения удаленных пользователей:
вместо
Код: Выделить всё
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = " . DELETED . ", post_username = '$username'
WHERE poster_id = " . $this_userdata['user_id'];
Код: Выделить всё
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = " . DELETED . ", post_username = '" . str_replace("\\'", "''", addslashes($this_userdata['username'])) . "'
WHERE poster_id = $this_userdata['user_id']";
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 19 лет 7 месяцев
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 19 лет 7 месяцев
Хороший вопрос. Он ругнулся всего раз. Теперь сколько не обновляй, ничего невыводит. Ща верну всё на исходную и снова попробую.
Сам знаю, что не должен, но факт. Могу скриншот показать, если не верите, уважаемый.
Добавлено спустя 13 минут 18 секунд:
Так... я покрылся глюками. Придётся вам уважаемый подождать пока я поборю этих жуков (bugs).
Сам знаю, что не должен, но факт. Могу скриншот показать, если не верите, уважаемый.

Добавлено спустя 13 минут 18 секунд:
Так... я покрылся глюками. Придётся вам уважаемый подождать пока я поборю этих жуков (bugs).
