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

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


Вопрос

Сразу оговорюсь, в поиске была, подходящего решения не нашлось. ;)

 

Нужно добавить одно дополнительное условие в + к тем, что уже есть в "массовом удалении пользователей" - "Ведет дневник", по полю has_blog в таблице мемберов - удалять, если оно равно "0". Помогите, пожалуйста. :D

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

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

  • 0
У меня нет блогов. И однозначно не будет. А поле это было не задействовано. То есть, нигде. ;) Поэтому я его использовала, как "есть_журнал/дневник". Теперь надо убрать добрые тысяч 10 регистраций с 0 постов и не появляющихся последние N месяцев, но загвоздка в том, что есть пользователи, которые не пишут в форуме, но ведут дневник и появляются довольно редко. Потому и нужно дополнительное условие в массовое удаление. Поможешь? :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

короче надо удалить тех, у кого нет ни дневника, ни постов

ну 20 у меня нет в рабочем состоянии, поэтому наугад

./sources/admin/ad_member.php

 

1

		$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Less than <em>n</em> posts</b>" ,
															 $ibforums->adskin->form_input( "posts", $_POST['posts'] )
													)	  );

++

		$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Has blog</b>" ,
															 $ibforums->adskin->form_yes_no( "has_blog", $_POST['has_blog'] )
													)	  );

 

2

foreach( array('name', 'memberid', 'email','ip_address','aim_name','icq_number','yahoo','signature','posts','suspended', 'registered_first', 'registered_last','last_post_first', 'last_post_last', 'last_activity_first', 'last_activity_last','mgroup') as $bit )

here understand

...,'mgroup','has_blog'

 

3

				else if ($bit == 'posts')
			{
				$query[] = $table_prefix."posts <".$ibforums->input[$bit];
			}

++

				else if ($bit == 'has_blog')
			{
				$query[] = $table_prefix."has_blog =".intval($ibforums->input[$bit]);
			}

try

 

вообще можно подумать еще и дописать условие типа - не учитывать это поле

тогда сделать не yes_no а dropdown

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

  • 0

Спасибо!

Пробую... :)

 

Добавила еще кучу запросов, чтоб заодно подчистить таблицы дневников:

В ad_member.php ф-ция function member_delete_do($id):

после:

		//-----------------------------------------
	// Convert their posts and topics
	// into guest postings..
	//-----------------------------------------
	$DB->do_update( 'posts' , array( 'author_id'  => 0 ), "author_id".$mids );
	$DB->do_update( 'topics', array( 'starter_id' => 0 ), "starter_id".$mids );

это:

		//-----------------------------------------
	// Convert their comments and votes into guest postings..
	//-----------------------------------------
	$DB->do_update( 'jcomments' , array( 'author_id'  => 0 ), "author_id".$mids );
	$DB->do_update( 'jvoters', array( 'member_id' => 0 ), "member_id".$mids );

и после этого:

		//-----------------------------------------
	// Delete from validating..
	//-----------------------------------------
	$DB->simple_exec_query( array( 'delete' => 'validating', 'where' => "member_id".$mids ) );
	$DB->simple_exec_query( array( 'delete' => 'members'   , 'where' => "id".$mids ) );

это:

		//-----------------------------------------
	// Delete from journals
	//-----------------------------------------
	$DB->simple_exec_query( array( 'delete' => 'jmembers'   , 'where' => "id".$mids ) );
	$DB->simple_exec_query( array( 'delete' => 'jfriends'   , 'where' => "friend_id".$mids." or member_id".$mids) );
	$DB->simple_exec_query( array( 'delete' => 'jfavorite'  , 'where' => "favorite_id".$mids." or member_id".$mids) );
	$DB->simple_exec_query( array( 'delete' => 'jinterest'  , 'where' => "journal_id".$mids ) );
	$DB->simple_exec_query( array( 'delete' => 'jtracker'   , 'where' => "member_id".$mids ) );

 

Воть. Мало ли - пригодится кому... :D Чтоб уж совсем отовсюду убрать... ;) Вроде, ничего не забыла...

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

  • 0
Что-то не так. Три десятка дневников все-таки удаляются... Почему? То есть, условие про дневники пропускается. :D Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Справилась. :D

 

В п.1 добавляем не

		$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Has blog</b>" ,
															 $ibforums->adskin->form_yes_no( "has_blog", $_POST['has_blog'] )
													)	  );

а вот это:

		$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Has Blog</b>" ,
															$ibforums->adskin->form_dropdown( "has_blog", array( 0=>array('0','Не важно'),1=>array('yes', 'Да'),2=>array('no', 'Нет') ), $_POST['has_blog'] )
													)		);

И в п.3 не

				else if ($bit == 'has_blog')
			{
				$query[] = $table_prefix."has_blog =".intval($ibforums->input[$bit]);
			}

а вот это:

				else if ($bit == 'has_blog')
			{
				if ( $ibforums->input[$bit] == 'yes' )
				{
					$query[] = $table_prefix."has_blog > 0";
				}
				else if ( $ibforums->input[$bit] == 'no' )
				{
					$query[] = $table_prefix."has_blog < 1";
				}
			}

И все работает. ;)

 

Спасибо!

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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