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

Мод Prune Users Posts


dimitry

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

При использовании мода Prune Users Posts для предотвращения спама удалением всех сообщений пользователя не обновлюется значения в полях в таблице ibf_forums в БД - сообщения все удаляются, внизу статистика не обновляется (ibf_stats) а про ibf_forums разработчик мода видимо забыл.

в скрипте ad_member.php

//+---------------------------------------------------------------------------------
//
// DO PRUNE_USER
//
//+---------------------------------------------------------------------------------

function do_prune_user() {
	global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;

	if ($IN['MEMBER_ID'] == "")
	{
		$ADMIN->error("Could not resolve member id");
	}

	//+-------------------------------

	$DB->query("SELECT * FROM ibf_members WHERE id='".$IN['MEMBER_ID']."'");
	$mem = $DB->fetch_row();

	//+-------------------------------

	if ($mem['id'] == "")
	{
		$ADMIN->error("Could not resolve member id");
	}

	// First of All Remove their Posts

	$DB->query("DELETE from ibf_posts WHERE author_id='".$IN['MEMBER_ID']."'");
	$postsremoved = $DB->get_affected_rows();

	// Now, get rid of posts which are topics.

	$DB->query("DELETE from ibf_topics WHERE starter_id='".$IN['MEMBER_ID']."'");
	$topicsremoved = $DB->get_affected_rows();

	// Update The Stats

	$DB->query("SELECT * from ibf_stats");
	$r = $DB->fetch_row();


	$r['TOTAL_REPLIES'] = $r['TOTAL_REPLIES'] - $postsremoved;
	$r['TOTAL_TOPICS'] = $r['TOTAL_TOPICS'] - $topicsremoved;

	$DB->query("UPDATE ibf_stats SET TOTAL_REPLIES = ".$r['TOTAL_REPLIES']);
			$DB->query("UPDATE ibf_stats SET TOTAL_TOPICS = ".$r['TOTAL_TOPICS']);

	if ( USE_MODULES == 1 )
	{
		$this->modules->register_class(&$this);
		$this->modules->on_delete($IN['MEMBER_ID']);
	}

	// Blow me melon farmer

	$ADMIN->save_log("Pruned Member '{$mem['name']}'");

	$ADMIN->done_screen("Member Posts Pruned", "Member Control", "act=mem&code=edit" );

}

Обратите внимание на:

$DB->query("UPDATE ibf_stats SET TOTAL_REPLIES = ".$r['TOTAL_REPLIES']);
			$DB->query("UPDATE ibf_stats SET TOTAL_TOPICS = ".$r['TOTAL_TOPICS']);

А где апдейт для таблицы ibf_forums ?

Вероятно нужно дописать что-то типа

$DB->query("UPDATE ibf_forums SET.....

Т.е. нужно, чтобы в полях: topics posts last_post last_poster_id last_poster_name last_title last_id и может некоторых еще (скажем, которые показывают есть ли в теме новые сообщения) установить верные значения.

Подскажите, как правильно составить запрос в БД для этого случая.

 

 

 

Подскажите еще заодно, есть ли еще для 1.3 модификации, позволяющие быстро удалять спам в виде сообщений и тем на разных форума, чтобы, скажем, можно было, например, указать срок от и до и не тыркаться с каждыйм сообщением через поиск сообщений данного пользователя?

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

Не там тему создал.

В топик поддержки этого мода пиши. Или если его нет, давай на него ссылку.

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

Не там тему создал.

В топик поддержки этого мода пиши. Или если его нет, давай на него ссылку.

http://mods.invisionize.com/db/index.php/f/1028

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

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

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

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

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

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

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

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

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

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

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

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