Хотя я понимаю, что обычный поиск по темам и сообщениям может быть достаточным для большинства случаев, я получил от пользователей запросы на возможность фильтрации результатов, чтобы отображать только ответы или только темы (что, как я полагаю, означает первые ответы в теме).
Вероятно, это также можно реализовать с помощью компонента темы, но я решил сначала спросить, вдруг я упускаю что-то очевидное.
Я знаю, что поиск по темам и сообщениям возможен. Сообщается, что результаты смешивают темы и сообщения, и было бы неплохо иметь возможность указать Discourse показывать «только темы» ИЛИ «только сообщения», а также оба варианта (как сейчас).
Поскольку результаты представлены в интерфейсе с бесконечной прокруткой, возможность фильтровать то, что пользователь уже знает, что там не будет, помогла бы снизить информационный шум.
Если я знаю, что ищу сообщение, нет причин продолжать прокручивать и темы, чтобы найти то, что мне нужно.
В Discourse «тема» означает все сообщения. Первое сообщение — это оригинальное сообщение (OP) или первое сообщение.
Однако я понимаю, что это может сбивать с толку, так как кнопка создаёт тему, состоящую изначально из одного сообщения, а затем добавляются новые сообщения при появлении ответов.
Тем не менее,
означает «только первое сообщение темы», и это действительно доступно: это фильтр in:first:
Спасибо за спецификацию о том, что возвращаются только темы. Я это полностью упустил
Как временное решение: когда результаты поиска возвращают фактические данные, формируется URL. Как вы думаете, можно ли создать компонент или плагин, который просто добавляет style="display:none" к тем элементам, URL которых указывает на пост, и наоборот — для тем?
В случае с плагином где-то в результатах поиска должна быть функция, определяющая, является ли элемент «первым ответом» или нет. Возможно, получится перехватить это и исключить такие элементы из массива результатов, добавив специальный новый фильтр?
Если вы знаете, в каком файле находится этот контроллер или модель, пожалуйста, дайте ссылку здесь, чтобы я тоже мог посмотреть
Спасибо, @Canapin. Я вернусь к этому через пару недель, так как сейчас сильно завален работой и просто собираю информацию о том, чем смогу заняться, когда у меня появится немного свободного времени