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

Антифлуд - склейка сообщений


d1pro

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

Убиваем настройки из админки, импортируем заново. Редактируем topics.php заново. У меня во всех местах стоит коммент //post merge или //merge posts... Ну что-то в это роде...
Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 191
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

  • d1pro

    d1pro 41 публикация

  • GiV

    GiV 8 публикаций

  • Shaggoth

    Shaggoth 7 публикаций

  • Sex

    Sex 7 публикаций

Загружено фотографий

To update to latest version at post_reply_post.php at modifed section find

 

                      $DB->simple_construct( array( 'select' 
=> 'pid, post', 'from' => 'posts', 'where' => "topic_id=".$this->topic['tid'], 'order' => 'post_date DESC', 'limit' => array('0','1') ) );

 

 

And replace with

 

  
                      $DB->simple_construct( array( 'select' 
=> 'pid, post', 'from' => 'posts', 'where' => "topic_id=".$this->topic['tid']." AND author_id=".$this->post['author_id'] , 'order' => 'post_date DESC', 'limit' => array('0','1') ) );

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

Да это на ize чел обнаружил, что возможна ситуация, когда данные о топике еще не обновились (т.е. кэш еще не записан), а уже новый пост идет. Дык в этой случае если автор нового поста и последнего различаются, все равно их посты будут слиты... Короче говоря дополнительная защита, чтоб не то не слить случайно...
Ссылка на комментарий
Поделиться на других сайтах

d1pro

Всё круто только опять... Проблема:

У меня браузер опера. Стоит 2 версия финальная. Пишу что-то из формы быстрого ответа (не какх модом до этого не ставил, из той что вместе с форумом идёт)

Дык вот, когда пишешь первое сообщение жмёшь ОТПРАВИТЬ. Поститься всё ОК. Потом, если тут же написать второе сообщение и нажать ОТПРАВИТЬ барузер как будто подвисает. Т.е от запрос отправляет и ступориться. Потом жмёшь обновить и всё ОК - склеивает как надо. Такое стало после установки мода.

В версии 1.3 было тоже самое, но как-то на это забивал - думал правда опера глючит, тут поставил мод и начилось всё тоже самое что с 1.3 версией.

Кто-нить сталкивался с подобной проблемой?

Добавлено в [mergetime]1098182415[/mergetime]

ЗЫ

Вторая финальная версия форума, а не оперы :D

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

Модифицированы только php файлы, которые не являются браузерозависимыми. Зависимость работы сервера от браузера клиента кажется мне сомнительной...
Ссылка на комментарий
Поделиться на других сайтах

Тогда объясните мне такой феномен. В оригинале делается что? Просто insert into ibf_posts и т.п. Я *только* этот кусок кода меняю, заменяю просто insert на проверку, тот или не тот и если тот, то тогда вместо insert идет update ibf_posts. Дальше идет тот же самый код, что и раньше. Объясните мне, неразумному, где здесь зависимость от браузера? Почему этот код не должен работать в Опере?
Ссылка на комментарий
Поделиться на других сайтах

d1pro

Обьясни что я делаю не так.. постафил млд..все ок..

Но при добавление поста не показываеться время когда он был добавлен

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

d1pro :D да это понятно что ничего не понятно, вообщем эффект такой же как если, например, в опциях отключить страницу редиректа совсем.. опера после каждого ответа будет тормозить

да причем этот глюк бывает через раз...

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

  • 1 месяц спустя...

Нашёл баг, если смотреть через расширенную форму ответа, то там где идут посты пользователей наоборот. Склейка выглядит так: XXX добавил в [mergetime]1103124127[/mergetime]

 

Добавлено в [mergetime]1103125792[/mergetime]

Нашёл баг, если смотреть через расширенную форму ответа, то там где идут посты пользователей наоборот. Склейка выглядит так:

XXX добавил в [mergetime]1103124127[/mergetime]

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

И не только там :D. Еще и в поиске, а так же в портале. Сообщили пару недель назад, да собственно и так можно было догадаться ;). Исправления будут после зачетной недели, ибо некогда...
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Почаитал я тут всё это и понял, что действительно надо делать из этого мода хорошо настраиваемый антифлуд ;)

А время не реботает действительно :)

Что делать?

 

ЗЫ. Вообще по-хорошему надо время выводить как и "сообщение отредактировано..." "отдельно" и не показывать при редактировании, иначе возникает "баг": пользователям разрешено редактировать в течении часа своё сообщение, но дописав после него что-то ещё (на 5 дней стоит антифлуд), они получают возможность редкатировать всё сообщение, не так ли :D

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

Сказать по-честному, создание полноценно-настраиваемого антифлуда в планы пока не входит. Баги поправлю, а остальное как время будет...
Ссылка на комментарий
Поделиться на других сайтах

Это же дело наличия времени... мы же понимаем :D

 

А глюки бы хотелось убрать, но сам, например, в пхп пока не силён, а без времени плоховато антифлуд ставить...

 

Я понимаю, что через date() можно сделать, добавив его сюда:

 $this->post['post']        = $this->lastpost['post'].$flood_separator.date("M j Y, h:i").$flood_separator.$this->post['post'];

 

но как грамотно локализацию сделать, т.е. чобы "явнварь" писалось вместо Jan, а то ведь вариантов-то много ...

 

Добавлено: если кому интересно, то самый простой вариант можно сделать так (он будет виден при редактировании конечно же):

добавляем ещё один т.н. разделитель:

$flood_edited = $this->class->parser->convert( array(
                                                            'TEXT'    => "[size=1]Сообщение дополнено: ".date("d.m.yг. - H:m")."[/size]",
                                                            'CODE'    => $this->class->forum['use_ibc'],
                                                            'SMILIES' => $ibforums->input['enableemo'],
                                                            'HTML'    => 1
                                                      )      );

А потом заменяем строчку слкейки на эту:

 

$this->post['post']        = $this->lastpost['post'].$flood_separator.$this->post['post'].$flood_separator.$flood_edited;

Работает при стандартном флуд сепараторе (2 переноса на новую строку). Соотв. после собщения, которое склеено, выводится надпись...

 

PS. Как бы вот только надпись "сообщение отредактировано..." симитировать? Каким-то странным оно то ли шрифтом, то ли размером написано.... в post_edit_post.php что-то не нашёл, где эта надпись добавляется...

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


×
×
  • Создать...

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

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