Moodle 3.10.7安装兼容3.11的课程评分插件报错求助
问题分析与解决办法
问题根源
core_form/modalform是Moodle 3.11新增的AMD模块,你的Moodle 3.10.7版本并不包含这个模块,插件调用该模块时触发了加载错误。
适配修复步骤
1. 替换modalform模块为3.10兼容实现
找到插件amd/src/目录下所有调用core_form/modalform的JS文件,将其替换为3.10可用的模态表单实现:
- 改用
core/modal+core_form/dynamicform组合实现弹窗表单功能 - 代码替换示例:
// 原3.11代码 import ModalForm from 'core_form/modalform'; const modalForm = new ModalForm({ // 原配置项 }); // 替换为3.10兼容代码 import Modal from 'core/modal'; import ModalFactory from 'core/modal_factory'; import DynamicForm from 'core_form/dynamicform'; ModalFactory.create({ type: Modal.TYPE_FORM, title: '你的表单标题', body: new DynamicForm({ formClass: '插件对应的表单类', args: { /* 表单所需参数 */ }, submitButtonText: '提交', }) }).then(modal => { modal.show(); // 绑定提交完成事件 modal.getRoot().on('submitComplete', () => { // 执行提交后的逻辑(如刷新页面、提示成功) }); });
2. 修正插件版本依赖
打开插件的version.php文件,修改requires字段为Moodle 3.10.7的版本代号:
$plugin->requires = 2020110907; // 对应Moodle 3.10.7的版本标识
3. 清理缓存并重建AMD模块
在Moodle后台执行以下操作:
- 进入「站点管理」→「开发」→「清除缓存」
- 进入「站点管理」→「插件」→「插件管理」→「重建插件缓存」
- 手动删除
amd/build/目录下的旧缓存文件,再重新访问评分页面
适配插件获取建议
- 优先选择标注支持Moodle 3.10.x的评分插件,避免跨大版本安装
- 若无合适插件,可基于现有3.11插件按上述步骤手动适配,重点排查所有AMD模块调用、PHP API的版本差异
内容的提问来源于stack exchange,提问作者luke nio
相关产品推荐
相关产品推荐

