Пропустить

[RC] Disable empty messages

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

[RC] Disable empty messages

Сообщение quazi » 12.02.2007 20:21

запрет ввода пустых сообщений
не самая критичная проблема форумов, но она существует



пользователь может зафлудить форум вводя много раз пустые теги (можно даже в поле сообщения просто ввести пустые строки)

открыть
includes/bbcode.php

найти
function bbencode_first_pass($text, $uid)
{


заменить
//
// +Disable empty messages
if ( PHP_VERSION >= '5.1.0' )
{
        function preg_replace_rec($pattern, $replacement, $subject)
        {
                $count = 0;
                do {
                        $subject = preg_replace($pattern, $replacement, $subject, -1, $count);
                } while ( $count );
                return $subject;
        }
} else {
        function preg_replace_rec($pattern, $replacement, $subject)
        {
                $count = 0;
                do {
                        $result = preg_replace($pattern, $replacement, $subject);
                        $count = strcmp($result, $subject);
                        $subject = $result;
                } while ( $count );
                return $subject;
        }
}

function bbencode_first_pass($text, $uid)
{
$text = preg_replace_rec(
        array(
                '/(\r?\n\r?){3,}/',
                '/\[(b|i|u|quote|code|img|url)\]\s*\[\/\1\]/',
                '/\[(quote|img|url|list|color|size|youtube)[^\]]*\]\s*\[\/\1\]/',
        ),
        array(
                '\1',
                '',
                '',
        ),
        $text);
// -Disable empty messages
//


открыть
includes/functions_post.php

найти
                $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
        }

заменить на
                $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
//
// +Disable empty messages
if ( empty($message) )
{
        $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
// -Disable empty messages
//
        }

открыть
privmsg.php

найти
                                $privmsg_message = prepare_message($HTTP_POST_VARS['message'], $html_on, $bbcode_on, $smilies_on, $bbcode_uid);

после добавить
//
// +Disable empty messages
if ( empty($privmsg_message) )
{
        $error = true;
        $error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['Empty_message'];
}
// -Disable empty messages
//

quazi
phpBB 2.0.8
 
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение TUMS » 13.02.2007 16:21

а оформить в виде мода?
Аватара пользователя
TUMS
phpBB 2.0.5
 
Сообщения: 244
Зарегистрирован: 16.10.2005 2:39
Откуда: Msk, RU
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Поручик » 13.02.2007 16:39

Наверное сложно, учитывая небольшой стаж пребывания на форуме у quazi
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 4002
Зарегистрирован: 12.05.2005 16:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 47 раз.

Сообщение quazi » 13.02.2007 17:53

TUMS
Что, по словесному описанию, написанному на государственном языке России уже сложно поставить мод?

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

quazi
phpBB 2.0.8
 
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение rxu » 13.02.2007 18:29

Mod Studio rules :)
##############################################################
## MOD Title: Disable empty messages
## MOD Author: quazi < n/a > (quazi) n/a
## MOD Description: 
## MOD Version: 0.0.1
## 
## Installation Level: Easy
## Installation Time: 4 minutes
## Files To Edit: includes/bbcode.php
## includes/functions_post.php
## privmsg.php
## Included Files: 
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
## Generator: Phpbb.ModTeam.Tools
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes: Locks an empty messages posting.
##############################################################
## MOD History:
## 
## 2007-02-13 - Version 0.0.1
##      -Initial release
## 
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php
#
#-----[ FIND ]------------------------------------------
#
function bbencode_first_pass($text, $uid) 
{
#
#-----[ REPLACE WITH ]------------------------------------------
#
// 
// +Disable empty messages 
if ( PHP_VERSION >= '5.1.0' ) 
{ 
        function preg_replace_rec($pattern, $replacement, $subject) 
        { 
                $count = 0; 
                do { 
                        $subject = preg_replace($pattern, $replacement, $subject, -1, $count); 
                } while ( $count ); 
                return $subject; 
        } 
} else { 
        function preg_replace_rec($pattern, $replacement, $subject) 
        { 
                $count = 0; 
                do { 
                        $result = preg_replace($pattern, $replacement, $subject); 
                        $count = strcmp($result, $subject); 
                        $subject = $result; 
                } while ( $count ); 
                return $subject; 
        } 
} 

function bbencode_first_pass($text, $uid) 
{ 
$text = preg_replace_rec( 
        array( 
                '/(\r?\n\r?){3,}/', 
                '/\[(b|i|u|quote|code|img|url)\]\s*\[\/\1\]/', 
                '/\[(quote|img|url|list|color|size|youtube)[^\]]*\]\s*\[\/\1\]/', 
        ), 
        array( 
                '\1', 
                '', 
                '', 
        ), 
        $text); 
// -Disable empty messages 
//
#
#-----[ OPEN ]------------------------------------------
#
includes/functions_post.php
#
#-----[ FIND ]------------------------------------------
#
                $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); 
        }
#
#-----[ REPLACE WITH ]------------------------------------------
#
                $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); 
// 
// +Disable empty messages 
if ( empty($message) ) 
{ 
        $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message']; 
} 
// -Disable empty messages 
// 
        }
#
#-----[ OPEN ]------------------------------------------
#
privmsg.php
#
#-----[ FIND ]------------------------------------------
#
                                $privmsg_message = prepare_message($HTTP_POST_VARS['message'], $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
#
#-----[ AFTER, ADD ]------------------------------------------
#
// 
// +Disable empty messages 
if ( empty($privmsg_message) ) 
{ 
        $error = true; 
        $error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['Empty_message']; 
} 
// -Disable empty messages 
//
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7314
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Сообщение Romy » 13.02.2007 22:43

а что получит пользователь на выходе? Ну я имею ввиду какое-нибудь предупреждение, мол нехорошо флудить тегами и т.д. ... ?
Аватара пользователя
Romy
phpBB 2.0.11
 
Сообщения: 396
Зарегистрирован: 07.05.2005 21:18
Откуда: tallinn.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение TUMS » 14.02.2007 0:52

На выходе он получит ошибку, мол "Пустое сообщение".
Аватара пользователя
TUMS
phpBB 2.0.5
 
Сообщения: 244
Зарегистрирован: 16.10.2005 2:39
Откуда: Msk, RU
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Поручик » 14.02.2007 6:30

Мод полезный, так как вопрос о пустых тегах уже поднимался и не раз.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 4002
Зарегистрирован: 12.05.2005 16:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 47 раз.

Сообщение edgar » 02.03.2007 7:58

Пустые сообщения с пробелами или enter можно запостить

[b] [/b] [i] [/i] [u] [/u] [b] [/b]


[b][/b][i][/i][u][/u] [b][/b]


[b]
[/b]
[b]
[/b]
[b]
[/b]


Нужен фикс! :)
Временно отключен.
Аватара пользователя
edgar
phpBB 3.0.0 RC1
 
Сообщения: 942
Зарегистрирован: 26.07.2005 6:20
Откуда: с Луны свалил...
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение quazi » 02.03.2007 9:02

я не уверен что preg_replace_rec - функция, используемая для вырезания пустых тегов, в данном моде оптимальна. возможно есть варианты лучше. проблему с тегами через пробельные символы пока не имею возможности решить. кто найдет - пишите сюда. мне кажется - это должно быть очень простое решение - что-то вроде стандартной функции trim

quazi
phpBB 2.0.8
 
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение edgar » 02.03.2007 9:17

Мод очень нужный. Если есть какая-то возможность добавить туда еще и запрет на сообщение только из смайлов... Или хотя бы где ничего не написано кроме символов
 :)  :(  :?  :!:  :?: 

Так было бы вообще классно. Хотя это наверно уже из другой оперы
Временно отключен.
Аватара пользователя
edgar
phpBB 3.0.0 RC1
 
Сообщения: 942
Зарегистрирован: 26.07.2005 6:20
Откуда: с Луны свалил...
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение SMM » 02.03.2007 11:36

а на PHP 4 будет работать?
if ( PHP_VERSION >= '5.1.0' )

вот это смутило?

а так отличная идея, респект Автору
Спорьте, заблуждайтесь, ошибайтесь, но, ради бога, размышляйте, и хотя криво, да сами.
Аватара пользователя
SMM
phpBB 1.4.4
 
Сообщения: 71
Зарегистрирован: 29.07.2006 13:41
Откуда: Казань
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.

Сообщение quazi » 02.03.2007 11:53

SMM
http://www.php.net/preg_replace
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
...
Замечание: Параметр limit доступен в PHP 4.0.1pl2 и выше.


я читаю оффлайн версию документации - там сказано
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] )
...
ChangeLog
Version Description
4.0.1pl2 Added the limit parameter
4.0.4 Added the '$n' form for the replacement parameter
5.1.0 Added the count parameter

quazi
phpBB 2.0.8
 
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение TheHawk » 16.12.2007 3:51

Хм, поставил мод и ничего не изменилось: как прохододили пустые сообщения, так и проходят и даже с тэгами.
Кроме него ещё стоял похожий Minimum and Maximum Post Message Length.
Версия форума 2.0.21
Может эти моды несовместимы?
Изображение
Аватара пользователя
TheHawk
phpBB 2.0.1
 
Сообщения: 130
Зарегистрирован: 21.02.2007 18:04
Откуда: Беларусь, Гомель
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Бета-версии модов для phpBB 2.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы