在 Moodle 中为用户设置主题

set a theme for a user in Moodle

在我设置的 Moodle 中,我通过单点登录接收新用户,这些用户应该为他们设置特定的主题。此主题不是默认主题,其他用户可以注册该站点(他们不是通过 SSO 进入的)并且不应获得此主题,因此我无法将其设置为默认主题。

如何将主题设置为用户通过 SSO 登录时的首选或默认主题?

我认为此设置存储在数据库中,但我在那里找不到。 我在 user table 中找到了 theme 列,但是在那里设置主题没有任何作用。 我也查看了 table user_preferences 但是在我为特定用户更改主题后没有找到任何关于主题的记录。

有人知道它存储在数据库中的什么位置或者我如何为特定用户设置默认主题吗?

更新:
用户可以更改自己的主题。
我将主题名称存储在数据库的列中(干净,不是 theme_clean)。

您可能需要启用用户主题 - allowuserthemes

转到站点管理 -> 外观 -> 主题 -> 主题设置

或直接到 /admin/settings.php?section=themesettings

更新:

如何将名称存储在 theme 列中?应该是mytheme而不是theme_mytheme.

如果正确,请尝试更改主题顺序:在 config.php 中添加

$CFG->themeorder = array('user',  'course', 'category', 'session', 'site');

您需要注销并登录才能更新主题订单。

如果上述 none 有效,那么我会在登录后执行 var_dump($USER) 以查看 theme 是否正确更新。或者启动调试器并逐步执行 function resolve_theme() in /lib/pagelib.php