Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекращает поддержку phpBB версии 3.2.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2020 года.
С учетом этого, а также того, что версия 3.2.x больше не будет получать обновлений, за исключением связанных с проблемами безопасности
(только при их наличии и только до 7 ноября 2020 года), рекомендуется обновить конференции до версии 3.3.x.

[RC] Disable empty messages

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

[RC] Disable empty messages

Сообщение quazi »

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



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

открыть

Код: Выделить всё

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
//
Аватара пользователя
TUMS
phpBB 2.0.0
Сообщения: 244
Стаж: 15 лет 8 месяцев
Откуда: Msk, RU

Сообщение TUMS »

а оформить в виде мода?
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 16 лет 1 месяц
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Сообщение Поручик »

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

наш форум http://forum.aeroion.ru/cat1.html
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 16 лет 3 месяца

Сообщение quazi »

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

Можешь еще через профиль посмотреть на список моих тем. Из всех начатых мной, только одна содержит вопрос к сообществу. И то он уже затерялся в ворохе мусора.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15454
Стаж: 15 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 417 раз
Поблагодарили: 1848 раз

Сообщение rxu »

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
Изображение
Аватара пользователя
Romy
phpBB 2.0.3
Сообщения: 396
Стаж: 16 лет 1 месяц
Откуда: tallinn.ee

Сообщение Romy »

а что получит пользователь на выходе? Ну я имею ввиду какое-нибудь предупреждение, мол нехорошо флудить тегами и т.д. ... ?
Аватара пользователя
TUMS
phpBB 2.0.0
Сообщения: 244
Стаж: 15 лет 8 месяцев
Откуда: Msk, RU

Сообщение TUMS »

На выходе он получит ошибку, мол "Пустое сообщение".
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 16 лет 1 месяц
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Сообщение Поручик »

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

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 15 лет 10 месяцев
Откуда: с Луны свалил...

Сообщение edgar »

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

Код: Выделить всё

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

Код: Выделить всё

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

Код: Выделить всё

[b]
[/b]
[b]
[/b]
[b]
[/b]
Нужен фикс! :)
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 16 лет 3 месяца

Сообщение quazi »

я не уверен что preg_replace_rec - функция, используемая для вырезания пустых тегов, в данном моде оптимальна. возможно есть варианты лучше. проблему с тегами через пробельные символы пока не имею возможности решить. кто найдет - пишите сюда. мне кажется - это должно быть очень простое решение - что-то вроде стандартной функции trim
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 15 лет 10 месяцев
Откуда: с Луны свалил...

Сообщение edgar »

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

Код: Выделить всё

 :)  :(  :?  :!:  :?: 
Так было бы вообще классно. Хотя это наверно уже из другой оперы
Аватара пользователя
SMM
phpBB 1.4.2
Сообщения: 70
Стаж: 14 лет 10 месяцев
Откуда: Казань
Благодарил (а): 9 раз

Сообщение SMM »

а на PHP 4 будет работать?

Код: Выделить всё

if ( PHP_VERSION >= '5.1.0' )
вот это смутило?

а так отличная идея, респект Автору
Спорьте, заблуждайтесь, ошибайтесь, но, ради бога, размышляйте, и хотя криво, да сами.
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 16 лет 3 месяца

Сообщение quazi »

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
Аватара пользователя
TheHawk
phpBB 1.4.4
Сообщения: 130
Стаж: 14 лет 4 месяца
Откуда: Беларусь, Гомель

Сообщение TheHawk »

Хм, поставил мод и ничего не изменилось: как прохододили пустые сообщения, так и проходят и даже с тэгами.
Кроме него ещё стоял похожий Minimum and Maximum Post Message Length.
Версия форума 2.0.21
Может эти моды несовместимы?
Изображение

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