Автоматическая тёмная тема

Как мне включить «автоматическую цветовую схему тёмного режима» для всех пользователей, игнорируя их настройки аккаунта?

Полагаю, вам нужно принудительно настроить пользователей, отключив возможность выбора цветовой схемы. Перейдите в настройки → кастомизация → цвета → «Цветовую схему могут выбирать пользователи» (отключите это). Затем вернитесь к стилю и выберите цветовую схему, которая будет принудительно отображаться пользователям.

Спасибо за попытку помочь :slight_smile:

Это уже отключено.

Я прошу об этом, как указано здесь: Automatic Dark Mode color scheme switching

Я хочу, чтобы эта настройка была принудительно включена для всех пользователей, но не могу найти способ сделать это.

Возможно, вы хотите изменить default_dark_mode_color_scheme_id в настройках администратора?


Бот настроек Discourse говорит:

Установлена тёмная цветовая схема.

Несколько пользователей сообщили, что для них этот параметр не включён, и они сталкиваются с проблемами при просмотре логотипа в тёмном режиме. После включения настройки проблема устраняется.

Меня интересовало, почему этот параметр не включён для всех пользователей. Поэтому я искал способ принудительно включить его для всех.

Это нельзя сделать через интерфейс.
Однако вы можете массово обновить параметры пользователей с помощью команды Rails, но делать это следует с осторожностью.
Я рекомендую сначала проверить, сколько пользователей имеют эту настройку отключённой, например, с помощью Data Explorer. Если их количество невелико, вы можете установить её вручную или попросить пользователей сделать это самостоятельно.

Также, на мой взгляд, стоит убедиться, какое значение установлено по умолчанию при создании учётной записи.

Спасибо, не могли бы вы, пожалуйста, рассказать о командах Rails?

У меня установлен Data Explorer. Не могли бы вы подсказать скрипт, чтобы узнать, сколько пользователей имеют его включенным?

Благодарю за помощь, очень ценю. :heart:

По умолчанию настройка тёмного режима пользователя имеет значение «Как в обычном режиме».

В базе данных это определяется тем, что значение user_options.dark_scheme равно NULL.
Значение «Тёмный» — -1. Другие значения — положительные целые числа.

Запрос для получения пользователей, у которых не установлено значение по умолчанию, выглядит следующим образом:

SELECT 
    u.username,
    up.dark_scheme_id
FROM 
    users AS u
JOIN 
    user_options AS up
ON 
    u.id = up.user_id
WHERE up.dark_scheme_id IS NOT NULL

Найдено 59 результатов.

Теперь, как я могу массово изменить их настройки с помощью команд Rails?

Теперь я немного запутался. Зачем вы хотите лишить пользователя выбора цветов? Если вы не хотите давать выбор, тогда удалите все цветовые схемы, кроме стандартных светлой и тёмной. Всё.

Вы можете сбросить эту настройку для пользователей, которые её изменили, с помощью этого скрипта на Ruby on Rails:

UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
    uo.update(dark_scheme_id: nil)
end

Я успешно использовал его на своём тестовом экземпляре, но имейте в виду, что я не эксперт по Rails и, конечно, всегда делайте резервную копию перед выполнением. :slight_smile:

Выбора нет. Это настройка не включена по умолчанию для многих пользователей после того, как я выбрал тёмную цветовую схему для автоматического тёмного режима в настройках сайта.

Я хочу, чтобы она была включена для всех. Но у 59 пользователей она не включена по умолчанию — не знаю почему.

Чтобы прояснить: настройка на вашем скриншоте относится к панели администратора (общесерверная), а не к личным предпочтениям.

Последние находятся здесь:

image

Нет, это связано с настройками пользователя: данная опция отображается для пользователей, когда вы включаете автоматический тёмный режим в настройках сайта.

Итак, чтобы быть уверенным, мне нужно сделать следующее:

cd /var/discourse

./launcher enter app

А затем

UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
    uo.update(dark_scheme_id: nil)
end

Правильно?

Нет, подождите. Я не до конца понимаю запрос и, возможно, у меня нет некоторой информации об этой настройке тёмной темы :thinking:

Администратор сайта, которого я нашёл:

Где находится настройка, о которой вы говорите:

?

Пожалуйста, посмотрите это:

Речь идёт именно об этом.

Хорошо. Мне пришлось отключить цветовые схемы, чтобы эта опция появилась. Я прочитаю эту тему ещё раз, чтобы лучше разобраться.

Да! Это «идентификатор цветовой схемы режима по умолчанию».

Хорошо, так что снятие галочки с пункта «Включить автоматическую цветовую схему тёмного режима» устанавливает user_options.dark_scheme в значение -1, а установка галочки — в NULL.

Таким образом, если вы хотите, чтобы у всех пользователей эта настройка была включена, вы можете использовать мой скрипт.

Настройка по умолчанию при создании нового пользователя также включена.

После этого выполните rails c, чтобы войти в консоль Rails.

Если скрипт выводит лог, вы можете нажать q, чтобы выйти из него.