moskovit Опубликовано 2 Мая 2009 Жалоба Поделиться Опубликовано 2 Мая 2009 В личку отписал. Ссылка на комментарий Поделиться на других сайтах Прочее
Ignat Опубликовано 29 Июля 2009 Жалоба Поделиться Опубликовано 29 Июля 2009 Спасибо за мод! Ссылка на комментарий Поделиться на других сайтах Прочее
Магнитус Опубликовано 26 Сентября 2009 Жалоба Поделиться Опубликовано 26 Сентября 2009 Я извиняюсь заранее.Но не поняла как ставить этот мод, напишите, пожалуйста, подробнее инструкцию для блондинок. Заранее благодарю. Ссылка на комментарий Поделиться на других сайтах Прочее
cat777 Опубликовано 9 Ноября 2009 Жалоба Поделиться Опубликовано 9 Ноября 2009 как привести в соответствие с действительностью поля в ibf_members: new_msg msg_total show_popup после удаления сообщений в ibf_message_topics и ibf_message_text? Какие еще поля в базе затрагиваются удалением? Ссылка на комментарий Поделиться на других сайтах Прочее
cat777 Опубликовано 11 Ноября 2009 Жалоба Поделиться Опубликовано 11 Ноября 2009 посмотрел мод Биореактортам похоже так же, как и в этом моде, просто удаляют сообщения из таблиц ibf_message_topics и ibf_message_text и ничего более. Так как привести в порядок количество ПМ у каждого пользователя после удалений? Ссылка на комментарий Поделиться на других сайтах Прочее
Пустота Опубликовано 27 Ноября 2009 Жалоба Поделиться Опубликовано 27 Ноября 2009 (изменено) У меня такая фигня.Доступ к этой настройке может получить только суперадмин. Просто админ не может. Как называется группа, в которой просто администраторы находятся, если группа суперадминов называется $this->ipsclass->vars['admin_group']? Все, уже разобрался, спасибо. Мануал куритрулит. Изменено 27 Ноября 2009 пользователем Пустота Ссылка на комментарий Поделиться на других сайтах Прочее
sercam Опубликовано 28 Ноября 2009 Жалоба Поделиться Опубликовано 28 Ноября 2009 А есть полностью инструкция от А до Я как что скачать, где что поменять и как установить всё это дело? Вопрос.а зная собственно путь http://www.сайт/forum/index.php?automodule=spamлюбой может запустить и посмотреть, почитать, удалить? ------ и ещё.при нажатии на кнопку "просмотреть" у любого пользователя - вываливаюсь на главную страничку... Ссылка на комментарий Поделиться на других сайтах Прочее
habahaba Опубликовано 28 Ноября 2009 Жалоба Поделиться Опубликовано 28 Ноября 2009 У меня есть некоторые планы на подобный мод. Точнее он есть, но думаю переписать. sercam, посмотреть скорее всего может не любой, но не могу утверждать т.к. не видел код сего модуля. Я обычно убираю такую возможность - на всякий... Ссылка на комментарий Поделиться на других сайтах Прочее
Somsa Опубликовано 26 Января 2010 Жалоба Поделиться Опубликовано 26 Января 2010 Спасибо!Очень нужный мод. зы:Небольшая очипятка $this->nav = array( "<a href='".$this->ipsclass->base_url."automodule=map'>".$this->page_title."</a>" ); $this->nav = array( "<a href='".$this->ipsclass->base_url."automodule=spam'>".$this->page_title."</a>" ); Ссылка на комментарий Поделиться на других сайтах Прочее
ranc Опубликовано 7 Марта 2010 Жалоба Поделиться Опубликовано 7 Марта 2010 Вот немного доработанный мод от moskovit.mod_antispam.rar Ссылка на комментарий Поделиться на других сайтах Прочее
SilentSlider Опубликовано 28 Декабря 2010 Жалоба Поделиться Опубликовано 28 Декабря 2010 (изменено) Провёл функциональную и косметическую доработку кода сего мода. Вот код: <?php /* +-------------------------------------------------------------------------- | Invision Power Board v2.1.X Module File | ============================================= | by Matthew Mecham | (c) 2001 - 2005 Invision Power Services, Inc. | http://www.invisionpower.com | ============================================= | Web: http://www.invisionboard.com | Time: Sun, 09 Oct 2005 11:51:26 GMT | Release: 1a47e28f0443faa9f14d0c0a45151e54 | Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Example Module Loader File | > MODULE FILE (EXAMPLE) | > Module written by Matt Mecham | > Date started: Thu 14th April 2005 (17:59) | +--------------------------------------------------------------------------- | | Настройки: файлик назвать mod_antispam.php и поместить в папку modules | +--------------------------------------------------------------------------- version: 1.1 */ //===================================== // Define class, this must be the same // in all modules //===================================== class module { //===================================== // Define vars if required //===================================== var $ipsclass; var $class = ""; var $module = ""; var $html = ""; var $page_title = ""; var $nav = ""; var $result = ""; //===================================== // Constructer, called and run by IPB //===================================== function run_module() { //===================================== // Do any set up here, like load lang // skin files, etc //===================================== $this->ipsclass->load_language('lang_boards'); $this->ipsclass->load_template('skin_boards'); $page_title = "ПМ Антиспам - просмотр и удаление всех ПМ конкретного пользователя"; $nav = array( "<a href='".$this->ipsclass->base_url."automodule=antispam'>".$this->page_title."</a>" ); //===================================== // Set up structure //===================================== switch( $this->ipsclass->input['cmd'] ) { case 'jhdiuy23h': $this->jhdiuy23h(); break; case 'show': $this->show(); break; case 'del': $this->del(); break; case 'sortpmq': $this->sortpmq(); break; default: $this->defaultdo(); break; } $this->output .= "<br><br><br>"; $this->ipsclass->print->add_output("$this->output"); $this->ipsclass->print->do_output( array( 'TITLE' => $page_title, 'JS' => 1, NAV => $nav ) ); exit(); } function defaultdo() { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $this->output = "<center><H2>ПМ Антиспам</H2><br><br>Вы <b>являетесь</b> Администратором - доступ разрешён. Добро пожаловать в ПМ Антиспам! <br><br><br><br><a href=".$this->ipsclass->base_url."automodule=antispam>[Последние ПМ-сообщения]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=sortpmq>[Последние ПМ-сообщения с сортировкой по количеству]</a><br><br><hr><br></center>"; $this->output .= "<center><form method=get action=\"\"><input type=hidden name=cmd value=show><input type=hidden name=automodule value=antispam>Введите ID пользователя:<input type=text name=id size=6><input type=submit value=\"[Посмотреть последние сообщения]\"></form></center><br><br><table width=100%>"; $msges = ""; $result = $this->ipsclass->DB->query("select t.mt_from_id, count(1) as num, m.members_display_name FROM ibf_message_topics t INNER JOIN ibf_members m ON (m.id=t.mt_from_id) group by mt_from_id order by t.mt_date DESC LIMIT 200") or die("Query failed"); while ($row = $this->ipsclass->DB->fetch_row($result)) { $msges .= "<tr><td>".$row['members_display_name']."</td><td>".$row['num']."</td><td><a href=".$this->ipsclass->base_url."automodule=antispam&cmd=del&id=".$row['mt_from_id'].">[Удалить все]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=show&id=".$row['mt_from_id'].">[Посмотреть]</a></td></tr>"; } $this->output .= $msges; $this->output .= "</table>"; } else { $this->output = "<center>В доступе отказано, так как Вы - НЕ являетесь Администратором!</center>"; } } function sortpmq() { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $msges = ""; $this->output = "<center><H2>ПМ Антиспам</H2><br><br><a href=".$this->ipsclass->base_url."automodule=antispam>[Последние ПМ-сообщения]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=sortpmq>[Последние ПМ-сообщения с сортировкой по количеству]</a><br><br><hr><br></center>"; $this->output .= "<center><form method=get action=\"\"><input type=hidden name=cmd value=show><input type=hidden name=automodule value=antispam>Введите ID пользователя:<input type=text name=id size=6><input type=submit value=\"[Посмотреть последние сообщения]\"></form></center><br><br><table width=100%>"; $result = $this->ipsclass->DB->query("select t.mt_from_id, count(1) as num, m.members_display_name FROM ibf_message_topics t INNER JOIN ibf_members m ON (m.id=t.mt_from_id) group by mt_from_id order by num DESC LIMIT 200") or die("Query failed"); while ($row = $this->ipsclass->DB->fetch_row($result)) { $msges .= "<tr><td>".$row['members_display_name']."</td><td>".$row['num']."</td><td><a href=".$this->ipsclass->base_url."automodule=antispam&cmd=del&id=".$row['mt_from_id'].">[Удалить все]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=show&id=".$row['mt_from_id'].">[Посмотреть]</a></td></tr>"; } $this->output .= $msges; $this->output .= "</table>"; } else { $this->output = "<center>В доступе отказано, так как Вы - НЕ являетесь Администратором!</center>"; } } function show() { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $id = intval($this->ipsclass->input['id']); $msges = ""; $this->output = "<center><H2>ПМ Антиспам</H2><br><br><a href=".$this->ipsclass->base_url."automodule=antispam>[Последние ПМ-сообщения]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=sortpmq>[Последние ПМ-сообщения с сортировкой по количеству]</a><br><br><hr><br></center>"; $result = $this->ipsclass->DB->query("select distinct members_display_name FROM ibf_members where id=$id ") or die("Query failed"); $row = $this->ipsclass->DB->fetch_row($result); if ( $row['members_display_name'] == "" ) { $this->output .= "<center>Пользователь с таким ID - не найден!</center><br><br><br><br>"; } else { $this->output .= "<center><H3>Сообщения от пользователя \"".$row['members_display_name']."\", ID № ".$id."</H3></center><br>"; } $this->output .= "<center><a href=".$this->ipsclass->base_url."automodule=antispam&cmd=del&id=".$id.">[Удалить ВСЕ сообщения]</a></center><br><br><table width=100% border=1 cellspacing=0 cellpadding=7>"; $result = $this->ipsclass->DB->query("select distinct m.msg_post, m.msg_date, t.mt_title FROM ibf_message_topics t INNER JOIN ibf_message_text m ON (m.msg_id=t.mt_msg_id) where msg_author_id=$id order by m.msg_date DESC LIMIT 200") or die("Query failed"); while ($row = $this->ipsclass->DB->fetch_row($result)) { $msges .= "<tr><td valign=top>".date("d-m-Y H:i:s",$row['msg_date'])."</td><td valign=top>".$row['mt_title']."</td><td>".$row['msg_post']."</td></tr>"; } if ($msges == "") { $this->output .= "</table>"; $this->output .= "<center>У этого пользователя - нет ПМ-сообщений!</center>"; } else { $this->output .= $msges; $this->output .= "</table>"; } } else { $this->output = "<center>В доступе отказано, так как Вы - НЕ являетесь Администратором!</center>"; } } function del() { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $this->output = "<center><H2>ПМ Антиспам</H2><br><br><a href=".$this->ipsclass->base_url."automodule=antispam>[Последние ПМ-сообщения]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=sortpmq>[Последние ПМ-сообщения с сортировкой по количеству]</a><br><br><hr><br></center>"; $id = intval($this->ipsclass->input['id']); $result = $this->ipsclass->DB->query("select * FROM ibf_members WHERE id=$id LIMIT 1") or die("Query failed"); $row = $this->ipsclass->DB->fetch_row($result); $result = $this->ipsclass->DB->query("select msg_author_id FROM ibf_message_text WHERE msg_author_id=$id") or die("Query failed"); $num = $this->ipsclass->DB->get_num_rows($result); $this->output .= "<center>Вы уверены, что хотите удалить ВСЕ ПМ-сообщения (<b>$num</b>) от <b>".$row['members_display_name']."</b> (ID=".$id.") ?<br><br><a href=".$this->ipsclass->base_url."automodule=antispam&cmd=jhdiuy23h&id=".$id.">[ДА]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam>[НЕТ]</a><center>"; } else { $this->output = "<center>В доступе отказано, так как Вы - НЕ являетесь Администратором!</center>"; } } function jhdiuy23h() { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $this->output = "<center><H2>ПМ Антиспам</H2><br><br><a href=".$this->ipsclass->base_url."automodule=antispam>[Последние ПМ-сообщения]</a> | <a href=".$this->ipsclass->base_url."automodule=antispam&cmd=sortpmq>[Последние ПМ-сообщения с сортировкой по количеству]</a><br><br><hr><br></center>"; $id = intval($this->ipsclass->input['id']); // $result = $this->ipsclass->DB->query("SELECT mt_to_id FROM ibf_message_topics WHERE mt_read = 0 AND mt_from_id =$id") or die("Query failed"); // if ( $this->ipsclass->DB->get_num_rows($result) ) // { // $recipients = Array(); // while($row = $this->ipsclass->DB->fetch_row($result)) // { // $recipients[] = $row['mt_to_id']; // } // $recipients = implode(",", $recipients); // $this->ipsclass->DB->query("UPDATE ibf_members SET new_msg = (new_msg-1), msg_total = (msg_total-1), show_popup = '0' WHERE id IN (".$recipients.")") or die("Query failed"); // $this->output .= "Удаление оповещений о непрочитанных сообщениях ID's: ".$recipients." ... успешно удалены!<br><br>"; // } // else // { // $recipients = ""; // } $result = $this->ipsclass->DB->query("DELETE FROM ibf_message_topics where mt_from_id=$id") or die("Query failed"); $result = $this->ipsclass->DB->query("delete FROM ibf_message_text where msg_author_id=$id") or die("Query failed"); $this->output .= "<center>ВСЕ сообщения выбранного Вами пользователя были успешно УДАЛЕНЫ!</center>"; } else { $this->output = "<center>В доступе отказано, так как Вы - НЕ являетесь Администратором!</center>"; } } } ?> как привести в соответствие с действительностью поля в ibf_members: new_msg msg_total show_popup после удаления сообщений в ibf_message_topics и ibf_message_text? Какие еще поля в базе затрагиваются удалением?Пробовал адаптировать именно для этого и предназначенный участок кода от этого же мода, но для IPB версии 1.2+ (исходный код находится на первой странице этой темы), но заставить его работать - пока что никак не получилось... Какие-то проблемы с выборкой результатов и функцией implode. Если кто хочет попытаться разобраться - смотрите в моём коде закомментированные строчки в функции "function jhdiuy23h()". Если справлюсь сам - обязательно выложу код, хотя за помощь - буду крайне признателен! Изменено 30 Декабря 2010 пользователем SilentSlider Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения