| Сводка | Этот компонент темы позволяет пользователям блокировать ключевые слова. Для работы требуется создание трёх пользовательских полей в настройках администратора. | |
| Предпросмотр | Я не могу просмотреть это в конструкторе тем, так как требуется создание пользовательских полей, но ниже приведены скриншоты. | |
| Репозиторий | Github - a-very-old-sock/discourse-keyword-block | |
| Руководство по установке | Как установить тему или компонент темы | |
| Новичок в темах Discourse? | Начинающее руководство по использованию тем Discourse |
Установить этот компонент темы
Этот компонент темы позволяет пользователям блокировать ключевые слова, указанные пользователем в разделе Настройки > Профиль. Для работы требуется создание трёх пользовательских полей в настройках администратора.
Блокировка ключевых слов в заголовке темы или её отрывке:
Блокировка тем или ответов, содержащих ключевое слово, а также рекомендуемых тем, содержащих это слово:
Этот компонент темы позволяет отдельному пользователю указать ключевые слова, которые он не хочет видеть, и скрывает темы и ответы, содержащие эти слова, с возможностью показать их по ссылке. «Слежение за словами» — это настройка администратора, применимая ко всем пользователям на всём сайте; данный компонент позволяет отдельным пользователям указывать свои собственные ключевые слова, которые они не хотят видеть.
Пример сценария: на форуме о домашних животных может быть общая тема о борьбе с шерстью животных, где основная тема не помечена тегом конкретного вида животного. Пользователь А отвечает о своей собаке, пользователь Б — о своей кошке, но пользователь А не хочет видеть ничего о кошках. Этот компонент темы позволяет пользователю А добавить слово «кошка» в свой чёрный список, и тогда везде, где появляется слово «кошка» в теме или ответе, оно заменяется на «Заблокировано: содержит слово «кошка»», с возможностью показать по клику.
Пользователь должен указать через запятую список заблокированных ключевых слов в пользовательском поле в разделе Настройки > Профиль, а также выбрать, чувствительны ли ключевые слова к регистру и должны ли они совпадать целиком. (Чувствительность к регистру и совпадение целых слов применяются ко всему списку блокировки, а не к отдельным словам).
Для работы этого компонента темы необходимо создать три пользовательских поля в разделе Администрирование > Настройка > Пользовательские поля. По умолчанию настройки компонента темы ожидают, что эти поля будут иметь номера 1, 2 и 3 в указанном ниже порядке. Если у вас уже определены другие пользовательские поля, вам нужно указать правильные номера полей в настройках компонента темы. (Нумерация пользовательских полей начинается с 1, поэтому посчитайте, сколько других полей у вас уже определено). Дополнительные сведения см. в руководстве Meta Создание и настройка пользовательских полей.
1 - Список заблокированных терминов пользователя
Тип поля: Текстовое поле
Название поля: (любое название подойдёт) Заблокированные термины
Описание поля: (любое описание подойдёт) Блокировка слов или фраз, встречающихся в сообщениях или темах. Разделены запятыми. Чтобы заблокировать имя пользователя, включите @, если выбрано совпадение целых слов.
Редактируемо после регистрации
Обязательно при регистрации
Отображать на публичном профиле
Отображать на карточке пользователя
Ищется
2 - Чувствительность к регистру
Тип поля: Подтверждение
Название поля: (любое название подойдёт) Заблокированные термины — чувствительность к регистру
Описание поля: (любое описание подойдёт) Слова в списке «Заблокированные термины» чувствительны к регистру.
Редактируемо после регистрации
Обязательно при регистрации
Отображать на публичном профиле
Отображать на карточке пользователя
Ищется
3 - Поиск целых или частичных слов
Тип поля: Подтверждение
Название поля: (любое название подойдёт) Заблокированные термины — целые слова
Описание поля: (любое описание подойдёт) Заблокированные термины должны появляться как полные слова, а не как частичные
Редактируемо после регистрации
Обязательно при регистрации
Отображать на публичном профиле
Отображать на карточке пользователя
Ищется
Ниже приведен CSS, включённый в компонент темы, который предотвращает отображение любых пользовательских полей на форме регистрации. Если у вас есть другие пользовательские поля, которые вы хотите отображать на форме регистрации, вам нужно переопределить это с помощью вашего собственного CSS.
.login-form .user-fields {
display: none;
}
Я тестировал это только с темой по умолчанию. Сообщения и темы блокируются, когда категории установлены для отображения «Категории/Последние» и «Категории/Лучшие», но не в «Категории/Избранные» или любых других видах категорий в виде коробок. Я вряд ли изменю это, так как мне это не нужно на моём собственном сайте, но я приветствую pull-запросы.
В настоящее время блокируется только сообщение, содержащее ключевое слово в заголовке или отрывке, видимом в браузере. Мне не удалось найти способ проверить содержимое всего сообщения при просмотре результатов поиска или списка тем, но я буду рад любым идеям, как это сделать.
Я планирую, чтобы это также работало на странице полного поиска, но по состоянию на 24/02/2023 я столкнулся с трудностями при реализации этой функции. Я отредактирую это, если мне удастся реализовать блокировку в поиске.
Это совместимо с компонентом темы «Отрывки тем», но не совместимо с предварительным просмотром списка тем. Я не тестировал это extensively с другими компонентами тем.


