Скрыть сообщение автоматически

oxeo

Проверенные
Сообщения
111
Реакции
22
Баллы
1,715
Люди опытные в тюнинге xenforo-кода! Подскажите как реализовать такую логику:

-> при размещении в теме ВТОРОГО по счету сообщения, ПЕРВОЕ сообщение темы автоматически становится СКРЫТЫМ.
 
Подскажите как реализовать такую логику:
Логика такая.
При открытии темы срабатывает listener и запускает остальную петрушку, а если точнее, то нужно скинуть посты темы в массив, далее запускается цикл и перебирает элементы массива(посты), если элементов в массиве будет > 1, то скрываем первый пост, а остальное как обычно выводим через цикл.

В теории всё просто :)
На практике нужно 100 раз полумать, ибо работа с постами опасная тема, можно запросто обвалить кучу аддонов.
 
Первое сообщение, это ключевое сообщение темы, его суть, если пользователь во втором написал какую то чушь и скроется первое сообщение, то смысл темы теряется.
 
Во первых спасибо за отзывчивость. Супер.

Но я вот видимо объяснил криво.

Описанная логика действует в теме ЕДИНОЖДЫ. Т.е. обсуждаемый аддон работает только внутри if($post_count==1){...} и активируется только в момент размещения сообщения в теме.

Ну то есть вот некая тема с ОДИНМ сообщением. И ничего с ней не происходит... Потом в теме кто-то размещает ВТОРОЕ сообщение и как только этот кто-то жмет "Ответить", и сообщение пройдя штатные проверки отправляется в тему, включается аддон и скрывает ПЕРВОЕ сообщение. И всё, далее что-бы с темой не происходило аддон ее не трогает, ибо технически в теме уже больше одного сообщения.

Зачем это надо. Есть такое применение xf (не по назначению ;)) где каждая тема форума это виртуальная ячейка регистра. В названии темы определенный код. Уполномоченные юзеры заходят в темы и делают отметки. Первый пост темы - содержит техническую информацию и должен скрываться как только в регистр (тему) вносят новую информацию (регламент такой).

Вы знаете что если через модераторский интерфейс форума первое сообщение темы скрывать, то скрывается вся тема. Сейчас эти первые темы скрывает админ руками ставя в базе (xf_post) "message_state=moderated". Устал он. Надо автоматом.

Можно конечно регулярно извне толкать что-то типа

SELECT COUNT(*) FROM xf_post WHERE thread_id=xxxx

и если дает больше 1 то

UPDATE xf_post SET message_state=moderated WHERE thread_id=xxxx and position=0

но хотелось бы как-то гармонично внутри движка эту манипуляцию проводить.
 
Эмм..... судя по описанию, вы хотите реализовать какую то версионность кода ? вам не github.com случайно для этого нужен ?
Не потянет для github. Нужен всего лишь один маленький функционал - запускать конкретную обработку (сокрытие сообщения) внутри движка по событию (размещение нового поста).
 
Не потянет для github. Нужен всего лишь один маленький функционал - запускать конкретную обработку (сокрытие сообщения) внутри движка по событию (размещение нового поста).
Проблема в том что первое сообщение скрывать движок конечно хоть и умеет, но при первом же перестроении он такие темы удалит, так как идет привязка тема-первое сообщение и его изменение в целом почти невозможно.
 
Проблема в том что первое сообщение скрывать движок конечно хоть и умеет, но при первом же перестроении он такие темы удалит, так как идет привязка тема-первое сообщение и его изменение в целом почти невозможно.
Удалит? Но сообщение же типа на модерации, а не удалено.
 
oxeo, а какая для движка разница? Темы-то никто не увидит в таком раскладе.
Если первый пост скрывать вручную изменяя запись в базе (ставим moderated), то тема не скрывается, скрывается только первый пост.
 
Если первый пост скрывать вручную изменяя запись в базе (ставим moderated), то тема не скрывается, скрывается только первый пост.
Но при перестроении сообщений - все это дело будет отклонено. А перестроения выполняются время от времени автоматически.
 
Но при перестроении сообщений - все это дело будет отклонено. А перестроения выполняются время от времени автоматически.
ого! а как запретить самовольные перестроения?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу