Страница 3 из 4

Добавлено: 23.11.2006 14:09
Nemo1987
Поручик, будешь удивлен.. нет такого :)

Код: Выделить всё

<?php
/***************************************************************************
*                            $RCSfile: admin_auto_delete_users.php,v $
*                            -------------------
*   copyright            : (C) 2003 Nivisec.com
*   email                : support@nivisec.com
*
*   $Id: admin_auto_delete_users.php,v 1.6 2003/07/03 15:13:16 nivisec Exp $
*
*
***************************************************************************/

/***************************************************************************
*
*   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', true);
/* If for some reason you need to disable the version check in THIS HACK ONLY,
change the blow to TRUE instead of FALSE.  No other hacks will be affected
by this change.
*/
define('DISABLE_VERSION_CHECK', false);
/* Changing these will produce false results on your
template, mess up any saved cookie preferences, and produce odd results
for the version checker.  So, DO NOT change them unless necessary!
*/
define('MOD_VERSION', '1.10');
define('MOD_CODE', 16);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');

/****************************************************************************
/** Admin CP Module
/***************************************************************************/
if(!empty($setmodules))
{
	$filename = basename(__FILE__);
	$module['Users']['Auto_Delete'] = $filename;
	return;
}

/****************************************************************************
/** Constants, Main Vars, Includes
/***************************************************************************/
(file_exists('pagestart.' . $phpEx)) ? include('pagestart.' . $phpEx) : include('pagestart.inc');
include($phpbb_root_path . 'includes/functions_admin_auto_delete_users.' . $phpEx);
$page_title = $lang['User_Auto_Delete'];
$status_message = '';

/****************************************************************************
/** Check for language file
/***************************************************************************/
$language_file = $phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin_auto_delete_users.' . $phpEx;
if (!file_exists($language_file))
{
	$language_file = str_replace($board_config['default_lang'], 'english', $language_file);
}
include($language_file);

if (count($HTTP_POST_VARS))
{
	/*******************************************************************************************
	/** Check for updated items
	/******************************************************************************************/
	foreach($HTTP_POST_VARS as $key => $val)
	{
		if (substr_count($key, 'update_id_'))
		{
			$update_name = substr($key, 10);
			
			if($board_config[$update_name] != $val)
			{
				$sql = 'UPDATE ' . CONFIG_TABLE . "
					   SET config_value = '$val'
					   WHERE config_name = '$update_name'";
				
				if(!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, $lang['Config_Table_Error'], '', __LINE__, __FILE__, $sql);
				}
				else
				{
					$disp_text = (isset($lang[$update_name])) ? $lang[$update_name] : $update_name;
					$status_message .= sprintf($lang['Updated_Value'], $disp_text);
					$board_config[$update_name] = $val;
				}
			}
		}
	}
}

$template->set_filenames(array(
'body' => 'admin/admin_auto_delete_users.tpl')
);

$template->assign_vars(array(
'S_AUTO_DAYS' => $board_config['admin_auto_delete_days'],
'S_AUTO_DAYS_NO_POST' => $board_config['admin_auto_delete_days_no_post'],
'S_AUTO_DAYS_INACTIVE' => $board_config['admin_auto_delete_days_inactive'],

'L_INACTIVE' => $lang['admin_auto_delete_inactive'],
'L_INACTIVE_DESC' => $lang['DESC_admin_auto_delete_inactive'],
'S_INACTIVE_Y' => ($board_config['admin_auto_delete_inactive']) ? 'checked="checked"' : '',
'S_INACTIVE_N' => (!$board_config['admin_auto_delete_inactive']) ? 'checked="checked"' : '',

'L_NON_VISIT' => $lang['admin_auto_delete_non_visit'],
'L_NON_VISIT_DESC' => $lang['DESC_admin_auto_delete_non_visit'],
'S_NON_VISIT_Y' => ($board_config['admin_auto_delete_non_visit']) ? 'checked="checked"' : '',
'S_NON_VISIT_N' => (!$board_config['admin_auto_delete_non_visit']) ? 'checked="checked"' : '',

'L_NO_POST' => $lang['admin_auto_delete_no_post'],
'L_NO_POST_DESC' => $lang['DESC_admin_auto_delete_no_post'],
'S_NO_POST_Y' => ($board_config['admin_auto_delete_no_post']) ? 'checked="checked"' : '',
'S_NO_POST_N' => (!$board_config['admin_auto_delete_no_post']) ? 'checked="checked"' : '',

'L_AUTO_TOTAL' => $lang['admin_auto_delete_total'],
'L_AUTO_TOTAL_DESC' => $lang['DESC_admin_auto_delete_total'],
'S_AUTO_TOTAL' => $board_config['admin_auto_delete_total'],

'L_AUTO_MINS' => $lang['admin_auto_delete_minutes'],
'L_AUTO_MINS_DESC' => $lang['DESC_admin_auto_delete_minutes'],
'S_AUTO_MINS' => $board_config['admin_auto_delete_minutes'],

'FAKE_DELETE_TEXT' => (FAKE_DELETE) ? $lang['Fake_Delete'] : '',
'DEBUG_TEXT' => (DEBUG_THIS_MOD) ? $lang['Debug_Enabled'] : '',

'PHPEX' => $phpEx,
'FILENAME' => append_sid(basename(__FILE__)),
'L_PAGE_NAME' => $lang['User_Auto_Delete'],
'L_PAGE_DESC' => $lang['Page_Desc'],

'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'L_SUBMIT' => $lang['Submit'],
'L_RESET' => $lang['Reset'],
'L_ENABLED' => $lang['Enabled'],
'L_AUTO_DAYS' => $lang['Auto_Days'],

'L_VERSION' => 'Version',
'VERSION' => MOD_VERSION,

));

if ($status_message != '')
{
	$template->assign_block_vars('statusrow', array());
	$template->assign_vars(array(
	'L_STATUS' => $lang['Status'],
	'I_STATUS_MESSAGE' => $status_message)
	);
}

/************************************************************************
** Begin The Version Check Feature
************************************************************************/
if (file_exists($phpbb_root_path.'nivisec_version_check.'.$phpEx) && !DISABLE_VERSION_CHECK)
{
	include($phpbb_root_path.'nivisec_version_check.'.$phpEx);
}
/************************************************************************
** End The Version Check Feature
************************************************************************/

$template->pparse('body');
include('page_footer_admin.'.$phpEx);
?>
Вот, все что есть :)

Добавлено: 23.11.2006 14:26
Поручик
с вами все ясно

Добавлено: 27.11.2006 11:23
Nemo1987
Поручик писал(а):с вами все ясно
В смысле?

Добавлено: 27.11.2006 11:29
Поручик
В смысле, Накойхер (С) не помню, /Dios, что ли, ты лезешь в admin/admin_auto_delete_users.php? Читать не умеем?

Добавлено: 30.11.2006 8:52
Nemo1987
Поручик... ИДИОт.. я ессесно :))
ЩА..сек :)

Добавлено: 30.11.2006 17:12
ilya300
вопрос я удаляю юзров которые не оставили ни одного сообщения по истечению 365 дней... 365 дней это со дня регистрации или последнего захода на форум???

Добавлено спустя 3 минуты 12 секунд:

и еще вопрос... если удалять юзеров по первому пункту Удаление юзеров не посещающих форум например 365 дней... как я понял это со дня последнего захода на форум... что будет с сообщениями юзеров которых автоудалили? и можно ли сделать так чтобы удалялись юзеры и которых нету ни одного сообщения

Добавлено: 30.11.2006 17:27
Поручик
Ммм, ilya300 :twisted: а можно было написать по пунктам?

1. Последнего визита в оригинальной редакции
что будет с сообщениями юзеров которых автоудалили
Они станут гостевыми (как хотите так и понимайте, см выше)
ilya300 писал(а):и можно ли сделать так чтобы удалялись юзеры и которых нету ни одного сообщения
А что, у вас такого нет?

Автоудаление пользователей, не имеющих сообщений
Этот пользователь зарегистрировал и активизировал учетную запись, но никогда не отправлял сообщений.

Добавлено: 07.12.2006 9:23
Nemo1987
Поручик, вроде ничего больше не выдает.. Огромное спасибо :)

Добавлено: 07.12.2006 11:17
Vincent_Vega
Искал но не нашел сам мод.
по сылкам вашим прошел..

где он сам-то есть??

Auto Delete Users

Добавлено: 07.12.2006 11:44
Поручик
Вы даже поиском в сети воспользовались? И даже искали там, где я ищу моды?

Добавлено: 10.12.2006 11:00
PilotiK
Поручик писал(а):Конечно надо, типа как у меня

functions_admin_auto_delete_users.php

Код: Выделить всё

			$sql = "DELETE FROM " . FORUMS_WATCH_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from forums watch table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . RATINGS_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user\'s ratings table', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "DELETE FROM " . QUOTA_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user\'s attach_quota table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . NOTES_TABLE . "
				WHERE user_id = $user_id 
				OR about_user_id = $user_id 
				OR poster = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from notes table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . BOOKMARK_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user\'s bookmarks table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . BUDDIES_TABLE . "
				WHERE buddy_id = $user_id 
				OR user_id = $user_id";
				
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from buddylist table', '', __LINE__, __FILE__, $sql);
			}

			$sql = 'DELETE FROM ' . CONTACT_TABLE . '
				WHERE user_id = ' . $user_id . '
				OR contact_id = ' . $user_id;
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user Contact List entries', '', __LINE__, __FILE__, $sql);
			}
И другие, например Mass Delete User, Admin User List

Добавлено спустя 8 минут 11 секунд:

Только не вздумайте пихать этот код на свой форум.
Эти моды надо затачивать под конкретный форум.
Извини что опять я... да и опять пара вопросов...
Требуется твоя помощь, 1-е почитав всю тему я понял что это удалялка трёт только ники, а после этого в БД остаётся всёже что то от пользователей, как например мне сделать так чтобы всётаки неоставалось ничего?!
2-е. Какая связь этого делете зверей с списком зверей?! и что нужно править в Списке зверей?!
3-е. Серёга, да действительно а ты непробывал больше нигде искать?! аяй-аяй!!!
4-е. Поручик, подскажи пажалуйста, я чесно всё прочитал и не нашёл ответов на свои вопросы больше нигде... Буду очень благодарен! заодно набудущее другим рассказал бы, что и как править нужно чтобы Юзеры удалялись из таблиц...

Добавлено спустя 49 минут 44 секунды:
Erlang писал(а):А вот где-бы достать файл УДАЛЕНИЯ мода из Базы... ДЕинсталл.
Деинстала нет, но можно сделать следующим образом, удаляешь всё то что заливал и правишь обратно то что правил, забыл что возми редмик к авто делете...
Думаю понятно где это находится...
из таблицы phpbb_config:

'admin_auto_delete_days', '999'
'admin_auto_delete_days_inactive', '999'
'admin_auto_delete_inactive', '0'
'admin_auto_delete_non_visit', '0'
'admin_auto_delete_total', '0'
'admin_auto_delete_minutes', '20'
'last_auto_delete_users_attempt', '0'
'admin_auto_delete_days_no_post', '999'
'admin_auto_delete_no_post', '0'

Как восстановить старый список пользователей.

Добавлено: 14.12.2006 0:43
Gev
Колдовал с этим модом и в результате половина пользователей была удалена нафик автоматически. Слава Богу до шаманизма сохранил копию базы с хоста. До обнаружения бяки пользователи успели накидать пару сотен сообщений, не хотелось бы их терять при полном восстановлении базы. Требуется частичное восстановление. А именно - таблицы пользователей.

ВОПРОС: Как восстановить только таблицу юзеров из старой базы?

phpBB 2.0.21
MySQL 4.0.25-standard
cPanel Build 10.9.0-RELEASE 79

Добавлено: 14.12.2006 9:20
Палыч
Gev писал(а): Как восстановить только таблицу юзеров из старой базы?
ИМХО, только ручками с весьма значительной долей танцев с бубном.
БД - набор связанных таблиц. Связь по полям. Это краткое описание связей полей талицы юзеров.
Rank assigned to User phpbb_ranks.rank_id = phpbb_users.user_rank
Banned users phpbb_users.user_id = phpbb_banlist.ban_userid
Topic starting user phpbb_users.user_id = phpbb_topics.topic_poster
User making the Post phpbb_users.user_id = phpbb_posts.poster_id
User vote record phpbb_users.user_id = phpbb_vote_voters.vote_user_id
Private Message: Sent to user phpbb_users.user_id = phpbb_privmsgs.privmsgs_to_userid
User Group cross reference phpbb_users.user_id = phpbb_user_group.user_id
User Watching Topic phpbb_users.user_id = phpbb_topics_watch.user_id
Private Message: Sent from user phpbb_users.user_id = phpbb_privmsgs.privmsgs_from_userid
User Session phpbb_users.user_id = phpbb_sessions.session_user_id
При удалении юзера (одной записи в таблице), разрывается достаточно много связей с таблицами постов, тем, приватных сообщений, опросов, групп. Соответствующие значения в этих таблицах привязываются в юзерю с ID = -1 (гостю).

Добавлено: 14.12.2006 10:05
Gev
Блин, так я попал, получается? :cry:

Добавлено спустя 2 минуты 1 секунду:

А может сделать новую БД. Потом восстановить старую, а потом из новой перенести новые сообщения?
Хотя... тоже связи...

Добавлено: 15.12.2006 1:11
PilotiK
поставили... но почемуто мод автоматом удаляет только по два пользователя с переодичностью 1440 сек... ну то что 1440 сек - это понятно но почему только по два юзера... у нас там больше 19-ти тысяч... я думал что этот мод сразу грохнет очень много юзеров... очень много аккаунтов у которых нет активации уже больше года.. почему только по 2 ника удаляет?? не понятно! обьясните пажалуйста этот пункт мне.. ставил значие автоудаления - 5, серавно каждые 5 минут, он удаляет по 2 ника...