自动黑暗模式

如何为所有用户启用“自动暗模式配色方案”,以覆盖其帐户设置?

我猜你需要强制用户,禁用选择配色方案的功能。
转到设置 → 自定义 → 颜色 → 用户可以选择配色方案(禁用它)

然后返回样式并指定一个配色方案,该方案将强制显示给用户。

1 个赞

感谢您尝试提供帮助 :slight_smile:

它已经禁用了。

我在这里提到的要求是:Automatic Dark Mode color scheme switching

我想强制为所有用户启用此设置,但我似乎找不到方法。

也许您想要的是 default dark mode color scheme id(管理员设置中的默认暗黑模式配色方案 ID)?


Discourse 设置机器人说:

2 个赞

它设置为深色主题

有几位用户报告说此设置未对他们启用,并且他们在启用该设置后遇到查看深色模式下徽标的问题,这可以解决此问题。

我想知道为什么此设置未对所有用户启用。因此,我一直在寻找一种方法来强制为所有用户启用它。

您无法通过界面执行此操作。
您可以使用 rails 命令批量更新用户选项,但需要谨慎操作。
我建议您首先使用数据浏览器等工具检查有多少用户禁用了此设置。如果数量不多,您可以手动设置或要求用户自行设置。

我认为您还应该检查创建帐户时的默认值。

2 个赞

谢谢,您能告诉我 rails 命令吗?

我已经安装了数据浏览器,您能告诉我一个脚本来查看有多少用户启用了它吗?

非常感谢您的帮助。: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
1 个赞

有 59 个结果。

现在我如何使用 rails 命令批量更改它们的设置?

我现在有点困惑。你为什么要打破用户对颜色的选择?如果你不想提供选择,那就卸载除默认的浅色和深色之外的所有配色方案。就这样。

您可以通过此 Rails 脚本为更改此偏好的用户重置该偏好:

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

我已在我的测试实例上成功使用了它,但请记住,我不是 Rails 专家,并且,当然,请务必先进行备份。 :slight_smile:

没有选择。只是这个设置在许多人选择了网站设置中的自动黑暗模式的深色主题后,默认情况下并未启用。

我希望所有人都启用此功能。但是,有 59 位用户默认未启用此功能,不知道为什么。

为了清楚起见,您屏幕截图中的设置来自管理员面板(服务器范围),而不是个人偏好。

后者是:

image

不,这是用户偏好设置,当您从网站设置中启用自动暗模式时,它会显示给用户。

1 个赞

那么我必须这样做才能清楚:

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:

我找到的网站管理员是:

您所说的设置在哪里:

请看这里:

这都是关于这个的。

好的。我必须禁用配色方案才能显示此选项。我将再次阅读此主题,以便更好地理解。

是的!它是“默认暗模式配色方案 ID”

好的,取消勾选“启用自动暗模式配色方案”会将 user_options.dark_scheme 设置为 -1,而勾选则将其设置为 NULL

因此,如果您希望所有用户都勾选此设置,您可以使用我的脚本。

新用户创建时的默认设置也是勾选

之后运行 rails c 进入 rails 控制台。

如果脚本输出了日志,您可以按 q 退出。

2 个赞