我正在尝试根据用户个人资料字段限制对Moodle课程活动的访问。个人资料字段根据其他标准跟踪资格,例如他们是否填写了有关其业务的某些重要信息。
该字段是必需的,已锁定并设置为默认值,但将其设置为未锁定没有任何区别。使用CSS在用户配置文件和注册屏幕中隐藏它(因为在注册屏幕中未显示的Moodle用户配置文件字段未创建用户创建时创建的mdl_user_info_data行 - 但这是另一个问题)。当用户提交我创建的表单时,mdl_user_info_data中的相关行会更新。这部分工作得非常好,除了用户仍然需要再次注销并重新登录以便更改流入课程页面(即他们能够访问课程活动)。
用户登录时似乎正在缓存用户配置文件字段,并且没有更新。有谁知道这是否如此?明显的后续问题是 - 我可以强制更新此缓存,如果可以,我将如何触发此操作?
我正在使用Moodle 2.7.3。
答案 0 :(得分:1)
数据缓存在$ USER->配置文件字段中的$ USER全局对象(它本身缓存在会话数据上)中。你应该能够更新那里的值或者调用一个函数重新加载它(我不记得我头顶的函数,但它将在user / profile / lib.php中)。