VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Посмотрел список хаков и не смог найти нужного. Возможно, я просто оказался невнимателен.
Мне требуется небольшой хак, который позволит производить постобработку сообщений. То есть вносить некоторые незначительные коррективы. Например, заменять множество точек подряд тремя, убирать пробелы перед знаками препинания и добавлять их после, отделять абзацы и др.
Кажется проще приучить пользователей всё это делать, чем нагружать движок
@ADv
Продвинутый
Join Date: Feb 2006
Posts: 85
Версия vB: 3.8.x
Пол:
Reputation:
Опытный 40
Репутация в разделе: 32
0
Quote:
Originally Posted by Sven
Кажется проще приучить пользователей всё это делать, чем нагружать движок
Не такая это и серьезная нагрузка. Тем более, что, например, автоцензор и так работает. Хак, который я ищу, по сути расширяет его возможности.
А пользователи, они разные, кто-то приучается, а кто-то нет. Я помню одного полгода отучал писать "кстате", пока не добавил это слово в автоцензор.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,738
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20271
Репутация в разделе: 8437
0
это не "небольшой" хак =)
нужно парсер писать со своими правилами обработки текста
@ADv
Продвинутый
Join Date: Feb 2006
Posts: 85
Версия vB: 3.8.x
Пол:
Reputation:
Опытный 40
Репутация в разделе: 32
0
Вот правила обработки я мог бы и сам настроить (разобраться с работой php с текстами вполне реально). Нужно только получить текст сообщения в какую-то переменную и вставить обработчик в соответствующее место. Если не ошибаюсь, то в newpost_complete.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,738
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20271
Репутация в разделе: 8437
1
в датаменеджере нужно смотреть
файл class_dm_threadpost.php
функция post_save_each()
в самом конце есть хук threadfpdata_postsave
вот наверное там и нужно прикручивать обработчик
@ADv
Продвинутый
Join Date: Feb 2006
Posts: 85
Версия vB: 3.8.x
Пол:
Reputation:
Опытный 40
Репутация в разделе: 32
0
Ага, спасибо! Нашел. Я предполагаю, что создам модуль, которому укажу размещение threadfpdata_postsave. Теперь надо понять как называется переменная, где лежит текст сообщения. По идее $postdata['pagetext'], но непонятно доступна ли она в этом месте или надо делать запрос SQL.
@tays
Эксперт
Join Date: Jun 2006
Posts: 372
Версия vB: 3.8.x
Пол:
Reputation:
Professional 1071
Репутация в разделе: 753
0
@ADv,
Можно сделать проще: по крону форума запускать php-скрипт (положить его в /forum/includes/cron/), который будет оперировать со значениями полей pagetext и pagetext_html в таблицах post и post_parsed соответственно. Например, скрипт запускается раз в 10 минут и отбирает посты за последние 10 минут, с которыми проводит необходимые манипуляции.
Преимущества такого подхода:
- не нужно ничего менять в стандартном коде vb.
Недостатки:
- сообщение не будет меняться сразу, а через какое-то время, которое пройдет до запуска скипта по крону.
- дополнительные запросы к БД
И лишний раз грузить и без того нагруженную таблицу post? Зачем оно нужно? Ход мыслей ТС совершенно правильный, вешаем модули на хуки, разово обрабатываем массив перед сохранением - дешево и сердито, можно писать довольно навороченные приблуды без особо ущерба производительности. ТС, посмотри этот топик.
@tays
Эксперт
Join Date: Jun 2006
Posts: 372
Версия vB: 3.8.x
Пол:
Reputation:
Professional 1071
Репутация в разделе: 753
0
Quote:
Originally Posted by Smalesh
Зачем оно нужно?
Затем, что задачи изменения текста разные бывают (например, для нескольких форумов нужны совершенно разные постообработки) и не всегда удобно встраивать это в код VB с точки зрения поддержки и развития собственного кода.
Конечно я не оспариваю ход мыслей ТС, просто есть разные пути и разные задачи.
Мне больше подходит вариант, который я описал. Да, и с точки зрения нагрузки там ничего существенного нет на миллионных базах постов, вернее даже - ничего как-то заметного нет.