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

Удаление Личных сообщений


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

Часто бывает так, что на форуме накопилось немалое количество личных сообщений, содержимое которых хранится в базах данных. Как удалить все эти сообщения? Решение в этой теме.

 

Следующими запросами вы удалите все личные сообщения всех пользователей

Админцентр -> Управление SQL -> Утилита SQL: Сделайте следующий запросы, по одному.

 

DELETE FROM ibf_message_text

 

DELETE FROM ibf_message_topics

 

Повтор :D. Этими запросами вы удалите все личные сообщения всех пользователей.

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

Что уж вы =)

 

Ведь это может многим понадобиться :D

А многие и не знаю как работать с теми же самыми БД ;)

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

  • 2 месяца спустя...

А есть ли возможность удалять сообщения от конкретного пользователя?

 

Зачем: зарегился спамер и разослал ЛС другим пользователям. Я - удалил.

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

мод для такой фигни как спамер (ЗАВЕРШЕН)

1.сделаем в индексе еще один акт

'deletepm'	=> array( 'deletepm'		, 'deletepm'		, array() ),

2.сделаем в action_public файл deletepm.php

 

<?php

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";
exit();
}

class deletepm
{
# Global
var $ipsclass;

function auto_run()
{
if ($this->ipsclass->member['mgroup'] == 4) 
{

$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_text', 'where' => 'msg_author_id='.$this->ipsclass->input['who'] ));
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'message_topics', 'where' => 'mt_from_id='.$this->ipsclass->input['who'] ));
$txt = 'Все сообщения спамера удалены';
$this->ipsclass->print->redirect_screen($txt,'showuser='.$this->ipsclass->input['who']);
}
}
}
?>

 

вызывать будет

act=deletepm&who='id пользователя-спаммера'

 

сделаем более доступным:

админка-внешний вид-фрагменты-скин_профиль-шоу_профиль

в конце будет яваскрипт меню, там надо добавить такую ячейку меню:

,
<if="ipb.member['mgroup'] == 4">
'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=deletepm&who={$info['mid']}'>Удалить исходящие PM</a>"
</if>

не забыть запятую!

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

Чесно говоря немного не понял: что делать с этим?

вызывать будет

Код

act=deletepm&who='id пользователя-спаммера'

 

и где искать

 

>Удалить исходящие PM<

 

 

 

 

Через 2 мин.

Ага, не работает "Опции профиля"...

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

полный мой код яваскрипт меню:

<script type="text/javascript">
//<![CDATA[
 var dname_title = "{ipb.lang['dname_title']}";
 menu_build_menu(
 "profile-options",
 new Array(
		   '<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=Search&CODE=getalluser&mid={$info['mid']}'>{ipb.lang['find_posts']}</a>",
		   '<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=Search&CODE=gettopicsuser&mid={$info['mid']}'>{ipb.lang['find_member_topics']}</a>",
<if="ipb.member['id'] != 0">
'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=usercp&CODE=ignore&uid={$info['mid']}'>{ipb.lang['ignore_user']}</a>",
</if>
<if="ipb.member['g_is_supmod'] == 1">
'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=mod&CODE=editmember&auth_key={$auth_key}&mid={$info['mid']}'>{ipb.lang['supmod_edit_member']}</a>",
</if>
<if="ipb.vars['auth_allow_dnames'] == 1">
'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='#' onclick='return profile_dname_history({$info['mid']})'>{ipb.lang['dname_title']}</a>",
</if>

		'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=Msg&CODE=02&MID={$info['mid']}'>{ipb.lang['add_to_contact']}</a>",
<if="ipb.member['mgroup'] == 4">
'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ipb.script_url}act=deletepm&who={$info['mid']}'>Удалить исходящие PM</a>"
</if>
	) );
//]]>
</script>

 

profileoptionslr8.jpg

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

Часто бывает так, что на форуме накопилось немалое количество личных сообщений, содержимое которых хранится в базах данных. Как удалить все эти сообщения? Решение в этой теме.

 

Следующими запросами вы удалите все личные сообщения всех пользователей

Админцентр -> Управление SQL -> Утилита SQL: Сделайте следующий запросы, по одному.

 

DELETE FROM ibf_message_text

 

DELETE FROM ibf_message_topics

 

Повтор :D. Этими запросами вы удалите все личные сообщения всех пользователей.

кое-что забыл ;)

ставим счётчик сообщений на ноль

UPDATE ibf_members set new_msg = 0, msg_total = 0, show_popup = 0;

и

UPDATE ibf_member_extra set vdirs = NULL;

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

  • 2 месяца спустя...
  • 3 недели спустя...

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

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

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

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

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

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

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

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

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

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

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