1. В includes\ создать файл adcerber_config.php
Код: Выделить всё
<?php
$ad_minpost=4; // До этого числа баним, свыше только информируем Админа и забиваем спам
$ad_replace='[SPAM]';
$ad_list=array('http://cernis.cz');
?>
Код: Выделить всё
Subject: {ACTION}Попытка рекламы на {SITENAME}
Charset: windows-1251
На {SITENAME} была зафиксирована попытка разместить рекламу,
текст сообщения выглядел так:
===============
{MESSAGE}
===============
{ACTION}
Username: {USERNAME}
IP: {IP}
________________
AD CERBER
НАЙТИ
$lang['You_been_banned'] =
Добавить после неё:
$lang['You_been_blocked'] ='Вы были деактивированы за попытку рекламы на сайте.<br /> Письмо о Вашем поведении с полным текстом сообщения направлено Администрации сайта';
4. Открыть includes\functions_post.php
В функции prepare_post
НАЙТИ
Код: Выделить всё
// Check message
if (!empty($message))
{
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message=ad_cerber($message);
НАЙТИ ?>
Перед вставить
Код: Выделить всё
// This function check message for SPAM
function ad_cerber($message)
{
global $userdata,$phpEx, $phpbb_root_path,$user_ip,$db,$board_config;
if( $userdata['user_level'] == ADMIN ) return $message;
include($phpbb_root_path . 'includes/adcerber_config.'.$phpEx);
$clear=str_replace($ad_list,$ad_replace,$message);
if($clear==$message) return $message; // OK. No AD or SPAM
$mustdie=false;
if( !$userdata['session_logged_in'] )
{
$sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip)
VALUES ('" . $user_ip . "')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . SESSIONS_TABLE . "
WHERE session_ip ='$user_ip'";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Shit happens");
}
$mustdie=true;
}
else
{
if($userdata['user_posts']>$ad_minpost)$mustdie=false;
else {
$user_id=$userdata['user_id'];
$sql = "UPDATE " . USERS_TABLE . " SET user_active=0
WHERE user_id=$user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't change user status", "", __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . SESSIONS_TABLE . "
WHERE session_user_id=$user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Shit happens");
}
$mustdie=true;
}
}
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('ad_cerber', $board_config['default_lang']);
$emailer->email_address($board_config['board_email']);
$emailer->set_subject('AD Cerber report');
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'MESSAGE' => $message,
'ACTION'=>($mustdie)?'***USER BANNED***':'',
'USERNAME' => $userdata['username'],
'IP' => decode_ip($user_ip)));
$emailer->send();
$emailer->reset();
if(!$mustdie) return $clear;
if($userdata['session_logged_in']) message_die(CRITICAL_MESSAGE, 'You_been_blocked');
message_die(CRITICAL_MESSAGE, 'You_been_banned');
}