Мод Auto Delete Users

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 14.02.2006 10:20

Сообщение Nemo1987 » 23.11.2006 14:09

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

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

<?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);
?>
Вот, все что есть :)

Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза
Контактная информация:

Сообщение Поручик » 23.11.2006 14:26

с вами все ясно
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 14.02.2006 10:20

Сообщение Nemo1987 » 27.11.2006 11:23

Поручик писал(а):с вами все ясно
В смысле?

Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза
Контактная информация:

Сообщение Поручик » 27.11.2006 11:29

В смысле, Накойхер (С) не помню, /Dios, что ли, ты лезешь в admin/admin_auto_delete_users.php? Читать не умеем?
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 14.02.2006 10:20

Сообщение Nemo1987 » 30.11.2006 8:52

Поручик... ИДИОт.. я ессесно :))
ЩА..сек :)

ilya300
phpBB 1.4.1
Сообщения: 49
Зарегистрирован: 27.11.2006 3:49

Сообщение ilya300 » 30.11.2006 17:12

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

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

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

Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза
Контактная информация:

Сообщение Поручик » 30.11.2006 17:27

Ммм, ilya300 :twisted: а можно было написать по пунктам?

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

Автоудаление пользователей, не имеющих сообщений
Этот пользователь зарегистрировал и активизировал учетную запись, но никогда не отправлял сообщений.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 14.02.2006 10:20

Сообщение Nemo1987 » 07.12.2006 9:23

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

Vincent_Vega
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 28.11.2006 11:16
Откуда: Волжский)
Контактная информация:

Сообщение Vincent_Vega » 07.12.2006 11:17

Искал но не нашел сам мод.
по сылкам вашим прошел..

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

Auto Delete Users
Vincent_Vega

Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза
Контактная информация:

Сообщение Поручик » 07.12.2006 11:44

Вы даже поиском в сети воспользовались? И даже искали там, где я ищу моды?
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Аватара пользователя
PilotiK
phpBB 1.4.0
Сообщения: 39
Зарегистрирован: 10.11.2006 0:36
Откуда: г. Волжский
Контактная информация:

Сообщение PilotiK » 10.12.2006 11:00

Поручик писал(а):Конечно надо, типа как у меня

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'

Gev
phpBB 1.0.0
Сообщения: 3
Зарегистрирован: 14.12.2006 0:36

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

Сообщение Gev » 14.12.2006 0:43

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

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

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

Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 453 раза
Контактная информация:

Сообщение Палыч » 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 (гостю).
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.

Gev
phpBB 1.0.0
Сообщения: 3
Зарегистрирован: 14.12.2006 0:36

Сообщение Gev » 14.12.2006 10:05

Блин, так я попал, получается? :cry:

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

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

Аватара пользователя
PilotiK
phpBB 1.4.0
Сообщения: 39
Зарегистрирован: 10.11.2006 0:36
Откуда: г. Волжский
Контактная информация:

Сообщение PilotiK » 15.12.2006 1:11

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

Закрыто

Вернуться в «Поддержка модов для phpBB 2.0.x»