Перейти к контенту

удаление пользователей


Рекомендуемые сообщения

После редиректа открывается ссылка

http://www.мой_сайт.нет/forum/index.php?showuser=9

 

Юзера с ID 9 нету потомучто я его только что удалил.

 

 

Скрина нету потому что нельзя его прикрепить!

Ссылка на комментарий
Поделиться на других сайтах

Ааа, ну конечно, все понятно.

 

Найди

$this->ipsclass->print->redirect_screen( "Все темы и сообщения пользователя с ID: $mid были удалены!", "showuser=".$mid );

И замени на

$this->ipsclass->print->redirect_screen( "Пользователь с ID: $mid был удален!", "" );

Скрина нету потому что нельзя его прикрепить!

Уже не надо, но разве в инете нет места, куда можно положить картинку? :D

Ссылка на комментарий
Поделиться на других сайтах

Всё хорошо работает! Только можно сделать чтобы все темы и посты удалённого пользователя былы от имени гостя.

 

А то написано:

 

Группа:

Сообщений: 0

Регистрация: --

Пользователь №: 0

 

 

Я удалил пользователя с номером 2 как сделать чтобы при новой регистрации пользователя ему дали номер 2. т.е. освободившиеся номера присваивались новым пользователям.

Ссылка на комментарий
Поделиться на других сайтах

Я удалил пользователя с номером 2 как сделать чтобы при новой регистрации пользователя ему дали номер 2. т.е. освободившиеся номера присваивались новым пользователям.p

Так нельзя сделать и не нужно так делать :D

 

А то написано:

 

Группа:

Сообщений: 0

Регистрация: --

Пользователь №: 0

Смотрите шаблоны сообщения для гостей.

Ссылка на комментарий
Поделиться на других сайтах

Можно условие написать, что бы для юзера с ID=0 использовалась другая фун-я.

 

Это уже в другую, но никак не в эту :D

Ссылка на комментарий
Поделиться на других сайтах

Jax, смотри что я нашёл :D :

 

sources\action_admin\member.php

 

Строка 2433

 

//-----------------------------------------
	// Convert their posts and topics
	// into guest postings..
	//-----------------------------------------

	$this->ipsclass->DB->do_update( 'posts' , array( 'author_id'  => 0 ), "author_id".$mids );
	$this->ipsclass->DB->do_update( 'topics', array( 'starter_id' => 0 ), "starter_id".$mids );

 

Там все запросы при удалении через админку. Помоги эти впихнуть в moderate.php а то испорчу ещё базу.

 

Напиши, пожалуйста, все запросы которые необходимы.

 

// Delete member subscriptions.

// Get current stats...

// Rebuild stats

// удаление из контактов

.....

 

Я прям так скопировал код как есть и теперь все сообщения удалённого пользователя от имени Гость.

СУПЕР! Круто! Получилось!

 

Только после каждого запроса вставил

$this->ipsclass->DB->simple_exec();

Ссылка на комментарий
Поделиться на других сайтах

:D

 

Только там при удалении юзера полностью, по-моему нужно еще очистить поля pfields_content (member_id), member_extra (id) и members_converge (converge_id), в соотвествии с его ID. ;)

 

И еще его подписки и фото, с аватаром :) Ну что уж наверняка :) Так же, надо не забыть, вдруг он еще не проверки стоит, и удалить из валидатинга. Если все выше написанное не получится сделать - пиши :)

Ссылка на комментарий
Поделиться на других сайтах

Вот что собрал проверь...

 

//=======================================================
// Начало запросов в базу
//=======================================================
$this->ipsclass->DB->simple_construct( array( 'delete' => 'members', 'where' => 'id='.$mid )); 
$this->ipsclass->DB->simple_exec();
//--------------------------
// От имени Гость
//--------------------------
$this->ipsclass->DB->do_update( 'posts' , array( 'author_id'  => 0 ), "author_id".$mids );
$this->ipsclass->DB->do_update( 'topics', array( 'starter_id' => 0 ), "starter_id".$mids );
//----------------------------
// Удаление пользователя
//----------------------------
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'pfields_content' , 'where' => "member_id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'member_extra'    , 'where' => "id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'members_converge', 'where' => "converge_id".$mids ) );
//----------------------------
// Удаление из подписки
//----------------------------
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'tracker'      , 'where' => "member_id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'forum_tracker', 'where' => "member_id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'warn_logs'    , 'where' => "wlog_mid" .$mids ) );
//-----------------------------------------
// Удаление если не активирован..
//-----------------------------------------
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'validating', 'where' => "member_id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'members'   , 'where' => "id".$mids ) );
//-----------------------------
$this->ipsclass->DB->simple_exec();
//=======================================================
// Конец запросам
//=======================================================

 

 

Как вставить удаление фото и авы, сразу ниже запросов?

 

Эти запросы нужны?

//-----------------------------------------
// Delete member messages...
//-----------------------------------------
$this->ipsclass->DB->build_query( array( 'select' => 'mt_msg_id', 'from' => 'message_topics', 'where' => "mt_owner_id".$mids ) );
$this->ipsclass->DB->exec_query();
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_text', 'where' => "msg_id".$msgids ) );		
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_topics', 'where' => "mt_owner_id".$mids ) );
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'contacts'      , 'where' => "member_id".$mids." or contact_id".$mids ) );

 

Запросы на ребилд статистики нужны?

Ссылка на комментарий
Поделиться на других сайтах

Как вставить удаление фото и авы, сразу ниже запросов?

Смотри фун-ю в rebuild.php:

Сообразишь как переписать ее?

Там же, но выше, есть фун-я для очистки фоток.

	function clean_avatars()
{
	require_once( KERNEL_PATH.'class_upload.php' );

	$upload = new class_upload();

	//-----------------------------------------
	// Set up
	//-----------------------------------------

	$done   = 0;
	$start  = intval( $this->ipsclass->input['st'] );
	$end	= intval( $this->ipsclass->input['pergo'] ) ? intval( $this->ipsclass->input['pergo'] ) : 100;
	$dis	= $end + $start;
	$output = array();

	//-----------------------------------------
	// Pop open the directory and
	// peek inside...
	//-----------------------------------------

	$i = 0;

	$dh = opendir( ROOT_PATH.'uploads' );

		while ( $file = readdir( $dh ) )
		{
			if ( strstr( $file, 'av-' ) )
			{
				$fullfile = ROOT_PATH.'uploads/'.$file;

				$i++;

				//-----------------------------------------
				// Already started?
				//-----------------------------------------

				if ( $start > $i )
				{
					continue;
				}

				//-----------------------------------------
				// Done for this iteration?
				//-----------------------------------------

				if ( $i > $end )
				{
					break;
				}

				//-----------------------------------------
				// Try and get attach row
				//-----------------------------------------

				$found = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id', 'from' => 'member_extra', 'where' => "avatar_location='$file' or avatar_location='upload:$file'" ) );

				if ( ! $found['id'] )
				{
					@unlink( $fullfile );
					$output[] = "<span style='color:red'>Удалена аватара без связей: $file</span>";
				}
				else
				{
					$output[] = "<span style='color:gray'>Аватара в порядке: $file</span>";
				}
		}
		}

		closedir( $dh );

	//-----------------------------------------
	// Finish - or more?...
	//-----------------------------------------

	if ( $i < $dis)
	{
	 	//-----------------------------------------
		// Done..
		//-----------------------------------------

		$text = "<b>Перестройка завершена</b><br />".implode( "<br />", $output );
		$url  = "{$this->ipsclass->form_code}";
		$time = 2;
	}
	else
	{
		//-----------------------------------------
		// More..
		//-----------------------------------------

		$text = "<b>Файлов проверено: $dis, продолжение...</b><br />".implode( "<br />", $output );
		$url  = "{$this->ipsclass->form_code}&code=".$this->ipsclass->input['code'].'&pergo='.$this->ipsclass->input['pergo'].'&st='.$end;
		$time = 0;
	}

	//-----------------------------------------
	// Bye....
	//-----------------------------------------

	$this->ipsclass->admin->redirect( $url, $text, 0, $time );
}

Запросы на ребилд статистики нужны?

Не думаю.

Ссылка на комментарий
Поделиться на других сайтах

Привет!

 

Что это за запросы и они нужны:

$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_text', 'where' => "msg_id".$msgids ) );

$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_topics', 'where' => "mt_owner_id".$mids ) );

$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'contacts'      , 'where' => "member_id".$mids." or contact_id".$mids ) );

 

Ребил статистики желателен, а то она мемного неправильно отображается. Напиши ребилд если нетрудно.

 

 

А фун-ю у меня что-то не получилось переписать. Помоги.

Ссылка на комментарий
Поделиться на других сайтах

Ребил статистики желателен, а то она мемного неправильно отображается. Напиши ребилд если нетрудно.

Какой статистики? :D Что именно обновлять нужно?

А фун-ю у меня что-то не получилось переписать. Помоги.

Читай подпись мою.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.