【问题标题】:set a theme for a user in Moodle在 Moodle 中为用户设置主题
【发布时间】:2016-05-24 23:57:27
【问题描述】:

在一个 Moodle 中,我已经设置,我通过单点登录接收新用户,这些用户应该为他们设置一个特定的主题。这个主题不是默认主题,其他用户可以注册站点(他们不是通过 SSO 进来的)并且不应该得到这个主题,所以我不能将它设置为默认主题。

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

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

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

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

【问题讨论】:

    标签: themes moodle


    【解决方案1】:

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

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

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

    更新:

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

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

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

    您需要注销并登录才能更新主题顺序。

    如果以上都不起作用,那么我会在登录后执行var_dump($USER) 以查看theme 是否已正确更新。或者启动调试器并在/lib/pagelib.php 中单步调试function resolve_theme()

    【讨论】:

    • $USER 对象在我看到我必须更改主题的地方已经存在,我尝试将它添加到 $USER 对象中,但这也不起作用。
    • 你能不能通过函数resolve_theme()来看看那里发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2013-01-22
    • 2018-10-30
    • 2012-04-03
    相关资源
    最近更新 更多