Проверил перед публикацией:
Мне нравится функция «Автоматическое поднятие тем», чтобы темы обновлялись. Но я бы хотел, чтобы при посещении тем посетители не видели десятки сообщений «Автоматически поднято».
Есть ли способ периодически удалять их — вручную, автоматически или и тем, и другим?
Задаю этот вопрос, потому что заметил, что на моём уровне, что бы я ни пожелал, это уже в большинстве случаев предусмотрено.
Он просто возвращает сотни тем, в которых находятся тысячи сообщений ‘Auto-Bumped’, но не указывает, сколько таких сообщений содержится в каждой теме.
Поэтому, думаю, в конечном итоге мне всё же придётся воспользоваться «топором» в «тёмных комнатах» консоли Rails (что немного пугает).
Я немного беспокоюсь, так как это затронет тысячи тем/сообщений сразу. Если бы только существовала кнопка «выбрать все» внутри темы, которая выбирала бы все сообщения о поднятии темы, и мы могли бы удалять эти сообщения одним кликом внутри любой темы. А если кто-то захотел бы удалить все такие сообщения во всех темах всего одной командой, то для этого ему пришлось бы войти в «rails».
Спросит ли или запросит ли что-либо 5-я строка команды Rails, о которой вы упомянули, перед удалением всех этих сообщений? Или она просто выполнит указанное действие без каких-либо предупреждений и т. д., а также без возможности восстановления?
Если возможно, можем ли мы сначала удалить «сообщения о поднятии темы» из любой темы, вместо того чтобы удалять их со всего сайта?
Также, не могли бы вы предложить или подсказать какую-либо команду Rails для просмотра некоторых примеров сообщений, которые мы собираемся удалить?
Что-то вроде этого в data-explorer может помочь получить общий обзор:
SELECT p.topic_id,
COUNT(p.id) AS count
FROM posts p
WHERE action_code = 'autobumped'
GROUP BY p.topic_id
ORDER BY count DESC
Однако я хочу предупредить: если у вас мало опыта, не стоит использовать rails console для внесения подобных изменений на рабочем сайте. Возможно, лучше сначала развернуть тестовый сайт и потренироваться.
Да, это решило проблему в той мере, в которой её задумали разработчики.
Тем не менее, я хотел бы предложить добавить команду «Администратор» — либо в настройки администратора, либо в просмотр темы — для выбора всех сообщений с пометкой «дубликат (автоматический подъём)» в любой теме или во всех темах и их последующего удаления по желанию администратора.
Может быть, вы могли бы скрыть эти сообщения с помощью CSS? К сожалению, я не думаю, что виджет post-small-action в настоящее время включает тип действия в качестве CSS-класса, поэтому вы не можете нацелиться конкретно на сообщения о поднятии темы. Возможно, компонент темы мог бы помочь?
Да, я проверил это перед тем, как предложить решение через Data Explorer.
Добавление конкретных классов к малым действиям могло бы стать хорошим предложением по #функции.
Я не проводил других тестов, поэтому не знаю, могут ли возникнуть какие-либо побочные эффекты. Возможно, классы small-action-[...] где-то в приложении вступят в конфликт, в таком случае вам следует выбрать префикс, который гарантированно будет уникальным.
Обратите внимание, что метод addPostSmallActionClassesCallback был добавлен только в прошлом месяце, поэтому вам нужна довольно свежая версия Discourse:
Спасибо.
Пожалуйста, подробнее объясните это последнее предложение: «в таком случае вы должны выбрать префикс, который гарантированно будет уникальным».
Например, вы можете использовать префикс bathinda-, который гарантированно не вступит в конфликт ни с чем в Discourse ни сейчас, ни в будущем. Это будет выглядеть примерно так: