Moodle 3.8.1登录页报错:Call to undefined method theme_boost\output\core_renderer::get_setting()
解决Moodle 3.8.1登录页
Call to undefined method theme_boost\output\core_renderer::get_setting()错误 错误根源
theme_boost\output\core_renderer类并未实现get_setting()方法,该方法属于theme_base基类。错误通常由以下场景触发:
- 基于Boost定制的子主题,在Mustache模板或自定义渲染器中直接调用了
$OUTPUT->get_setting() - 第三方插件修改了登录页渲染逻辑,错误使用了该未定义方法
修复方案
1. 修复自定义Boost子主题
- 模板文件修改:在主题的
templates目录下搜索get_setting,将模板中的{{$OUTPUT.get_setting('设置名')}}替换为{{theme_config.get('设置名')}} - 渲染器代码修改:若主题的
classes/output/core_renderer.php中存在$this->get_setting()调用,替换为$this->theme->get_setting('设置名')或$this->page->theme->settings->get('设置名')
2. 验证默认主题
- 临时切换到官方默认的Boost主题,若登录页恢复正常,即可确认问题出在当前使用的自定义主题上,按上述步骤针对性修复
3. 排查第三方插件
- 禁用近期安装的插件(优先排查涉及登录页、主题渲染的插件),逐一验证是否为插件导致的错误。找到问题插件后,尝试更新至兼容版本或联系开发者修复
4. 清理Moodle缓存
- 命令行执行缓存清理:
php admin/cli/purge_caches.php - 若能进入后台,可通过「站点管理」→「开发」→「清除缓存」完成操作
内容的提问来源于stack exchange,提问作者Bhavesh Tilvani
相关产品推荐
相关产品推荐

