Новые функции в версии 2.4.0.beta3
Настройка файла robots.txt
Эта функция позволяет администраторам изменять или переопределять содержимое файла robots.txt по адресу /admin/customize/robots. Эта страница не связана ни с одним элементом интерфейса — администраторы должны вручную ввести URL для доступа к ней:
Отправка максимум 200 писем в минуту для массовых приглашений
Примечание: Параметр invite.via_email устарел и заменен на invite.emailed_status.
Этот коммит добавляет новое поле emailed_status в таблицу invites для отслеживания статуса отправки писем.
0 - не требуется
1 - в ожидании
2 - массовое ожидание
3 - отправка
4 - отправлено
-
Для обычных приглашений по электронной почте создается запись приглашения со статусом
emailed_status= ‘pending’ (в ожидании). -
При массовой отправке приглашений создается запись со статусом
emailed_status= ‘bulk pending’ (массовое ожидание). -
Для приглашений, генерирующих ссылку, создается запись со статусом
emailed_status= ‘not required’ (не требуется). -
Когда приглашение находится в очереди на отправку, статус
emailed_statusобновляется до ‘sending’ (отправка). -
После отправки письма через задачу
InviteEmailстатусemailed_statusобновляется до ‘sent’ (отправлено).
Внешняя аутентификация при использовании приглашений
Эта функция (при включении) позволит сайтам с режимом invite_only требовать внешнюю аутентификацию перед использованием приглашения.
- Создана скрытая настройка сайта для переключения этой функции
- Включена возможность отправки приглашений при отключенном локальном входе
- К форме приглашения добавлена кнопка OAuth
- Требуется совпадение адреса электронной почты OAuth с адресом в приглашении
- Запрещается использование приглашения при сбое аутентификации OAuth
Выбор категории при публикации личного сообщения
Ранее по умолчанию выбиралась категория Без категории, что не всегда было удобно на некоторых форумах. Теперь сотрудник может сразу выбрать категорию, в которую будет перемещено личное сообщение.
Просмотр исходного текста писем для проверяемых сообщений в очереди
Если сообщение поступило по электронной почте, но требует проверки, теперь отображается иконка, при нажатии на которую можно просмотреть исходное содержимое письма.
Это полезно, если парсер писем в Discourse работает некорректно, и пользователь, проверяющий сообщение, хочет узнать исходное содержимое перед утверждением или отклонением сообщения.
Улучшения работы со списком отслеживаемых слов
В этом выпуске добавлены новые функции.
Появились две новые кнопки. Первая позволяет администраторам загружать список отслеживаемых слов по типам действий в файл .txt, вторая очищает все удаленные слова по типам действий (например, блокировка, флаг и т. д.). Кроме того, если сообщение отклонено из-за наличия одного или нескольких заблокированных слов, в сообщении об ошибке теперь перечисляются все заблокированные слова, содержащиеся в сообщении.
Обратите внимание, что эти новые функции также изменили формат файла для импорта отслеживаемых слов с .csv на .txt, поэтому он стал несовместим с расширением файла при экспорте отслеживаемых слов.
Настройка HTML-писем
Эта функция добавляет возможность настройки HTML-части всех писем с использованием пользовательского HTML-шаблона и, при необходимости, CSS-стилей. CSS будет проанализирован и преобразован во встроенные стили, так как почтовые клиенты плохо поддерживают CSS. При написании пользовательского HTML и CSS учитывайте поддержку почтовых клиентов. Делайте настройки максимально простыми.
Настройки можно добавлять и редактировать в разделе Администрирование > Настройка > Стиль письма.
Поскольку сводное письмо уже имеет сложную стилизацию, существует настройка apply custom styles to digest (применять пользовательские стили к сводке) в разделе Администрирование > Настройки > Письма, позволяющая отключить пользовательские стили для сводных писем.
В рамках этой работы для всех писем теперь корректно отображаются локали с правым направлением текста (RTL).
Отображение модераторов категорий на странице «О сайте»
Новое обновление для функции Category Group Review/Moderation. Отныне модераторы категорий будут отображаться на странице «О сайте» вместе со списком сотрудников.
Добавлена поддержка уровня видимости участников группы и уведомлений при принятии участника в группу.
Еще одно дополнение к управлению видимостью группы. Теперь существует 5 уровней видимости (аналогично видимости группы):
- публичный (по умолчанию)
- зарегистрированные пользователи
- только участники
- сотрудники
- владельцы
Администраторы и владельцы группы всегда имеют видимость участников группы.
Также отныне пользователям, принятым в группу, будут отправляться уведомления.
Встраивание списка тем на удаленные сайты через JavaScript API.
Эта функция добавляет поддержку тега <d-topics-list>, который можно встроить на ваш сайт для отображения списка тем Discourse. Любые атрибуты тега будут переданы как фильтры. Например:
<d-topics-list discourse-url="URL" category="1234"> отфильтрует темы по категории 1234.
Чтобы использовать эту функцию, включите настройку сайта «Встраивать список тем». Затем на сайте, куда вы хотите встроить список, добавьте следующий JavaScript:
<script src="http://URL/javascripts/embed-topics.js"></script>
где URL — адрес вашего форума Discourse.
Затем добавьте тег <d-topics-list discourse-url="URL"> в ваш HTML-документ, и он будет заменен списком тем.
Подробности см. по адресу Embedding a list of Discourse Topics in another site
Добавлен вебхук для уведомлений пользователей
Если включено, это будет вызывать вебхук каждый раз при создании уведомления пользователя. В зависимости от вашего форума это может генерировать большой объем данных, поэтому использовать эту функцию следует осторожно, так как она включает все, что пользователи увидят в своих лентах.
Обработка theme_uploads как настроек в JavaScript и возможность загрузки themes файлов js в качестве ресурсов
Это еще два улучшения для тем. Первое позволяет темам и компонентам получать доступ к ресурсам темы. Это означает, что внутри JS-файла темы теперь можно получить URL ресурса с помощью:
settings.theme_uploads.name
Второе улучшение помогает реализовать возможность отложенной загрузки больших JS-нагрузок для тем. Изменение безопасно, так как темы и так разрешено включать инлайн-JS.
Настройки сайта для связи с нативными приложениями iOS/Android и внедрение подсказки установки PWA в интерфейс Discourse
В этом выпуске также добавлены новые функции для приложений Android и iOS.
Теперь есть две новые настройки сайта для поддержки универсальных ссылок iOS через конечную точку apple-app-site-association и цифровых ссылок Google через конечную точку .well-known/assetlinks.json.
Кроме того, мы предотвратим появление мини-информационной панели нативной установки, перехватим событие её появления и отложим его до тех пор, пока пользователь не выполнит наши критерии, которые в настоящее время — уровень доверия 1.
Если событие происходит и пользователь соответствует нашим критериям, мы показываем баннер оповещения Discourse с предложением установки. Отклонение баннера фиксируется, чтобы пользователь больше не беспокоился на том же устройстве.
Вход через Discord
Мы добавили функциональность плагина discourse-plugin-discord-auth в ядро. При обновлении ядра плагин автоматически отключится, см.: discourse/discourse-plugin-discord-auth@fd08678?w=1.
Инструкции по настройке см. по адресу Configure Discord Login for Discourse
Улучшение производительности анонимного кэша
Вот две новые функции для повышения производительности:
-
DISCOURSE_COMPRESS_ANON_CACHE (true|false, по умолчанию false): позволяет опционально сжимать записи тела анонимного кэша в Redis, что может быть полезно для сайтов с высокой нагрузкой, где Redis расположен на отдельном сервере от веб-серверов.
-
DISCOURSE_ANON_CACHE_STORE_THRESHOLD (по умолчанию 2): помещать записи в Redis только если мы наблюдаем их более N раз. Это предотвращает ситуации, когда сканер может обойти большое количество тем и сохранить их все в Redis, где они никогда не будут использованы. Наше время анонимного кэша для тем составляет всего 60 секунд. Анонимный кэш внедрен для предотвращения эффекта «Слэшдот», когда одна тема посещается сотнями людей в течение одной минуты.




