You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Moodle自动创建课程及上传SCORM包的后台PHP函数

关于Moodle自动创建课程并上传SCORM包的技术方案

一、自动创建课程并上传SCORM包的PHP函数实现

Moodle核心提供了可直接调用的函数,能实现该自动化流程,关键函数及用法如下:

1. 创建课程

使用lib/courselib.php中的create_course()函数,传入课程配置数组即可完成创建:

$courseparams = [
    'fullname' => '自动生成的SCORM课程',
    'shortname' => 'auto-scorm-001',
    'category' => 1, // 替换为你的目标课程分类ID
    'format' => 'topics',
    'visible' => 1
];
$courseid = create_course($courseparams);

2. 上传并关联SCORM包

需要先处理SCORM文件的存储,再创建对应活动实例:

  • 文件存储:用file_save_draft_area_files()将上传的SCORM包保存到Moodle文件系统
  • 创建SCORM活动:调用mod/scorm/lib.php中的scorm_add_instance(),关联到刚创建的课程

简化示例代码:

// 处理SCORM包上传(假设已获取到上传文件的草稿区域ID)
file_save_draft_area_files(0, 'mod_scorm', 'package', 0, [
    'subdirs' => 0,
    'maxbytes' => 0,
    'maxfiles' => 1
]);

// 配置SCORM活动参数
$scormparams = [
    'course' => $courseid,
    'name' => '自动添加的SCORM内容',
    'package' => 'scorm_content.zip', // 替换为实际上传的包文件名
    'version' => '1.2', // 对应SCORM包的版本
    'visible' => 1
];
$scormid = scorm_add_instance($scormparams);

注意:执行脚本前必须引入Moodle根目录的config.php,确保运行在Moodle环境中。

二、是否可跳过所有步骤直接上传SCORM?

不行。Moodle的架构里,SCORM包是课程下的活动模块,必须依附于具体课程和SCORM活动实例存在,无法脱离课程单独上传。但可以通过自定义脚本、批量工具或简易插件,把「创建课程→添加SCORM活动→上传包」合并为一个一键操作,实现近似“直接上传”的体验。

内容的提问来源于stack exchange,提问作者kritika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:01:44