我想要一个更好的工作流程来调试上传的 SCO。事实上,我必须在活动中编辑一个文件,重新打包,上传和测试。通常,我只需要更改一行代码。能够在服务器上编辑该文件、那行代码将是非常好的。到目前为止,我所发现的只是 Moodle 管理文件,因此在上传后定位和破译重命名的文件似乎是不切实际的。
有没有办法配置 Moodle,使其在提取时不会重命名和重新定位 SCO 中的文件?实际上,我愿意接受有关调试 SCO 的最佳、最快工作流程的任何建议。
从 Moodle 2.0 开始,文件不再以传统/this/is/the/path/to/my.file方式存储在服务器上。相反,文件被重新散列并存储在存储库中(即moodledata作为看似随机数据的集合分布在整个文件夹中)。这提高了安全性和跨操作系统兼容性,但对于那些想通过 FTP 简单地上传 SCORM zip 包的人来说,事情变得复杂了。以下是有关Moodle 2.0 中文件处理的更多信息
让我们找到您要更新的文件,然后更新它。
mdl_files表,在字段中按名称查找文件filename(假设是portrait.jpg)contenthash场,它看起来像abcde1234567890。这意味着您的文件存储在moodledata/filedir/ab/cd/名称下的文件夹中abcde1234567890。portrait.jpg为abcde1234567890、上传和覆盖。filesize记录中的字段。portrait.jpg显然,这个过程可以自动化。您必须编写一个允许您上传文件的脚本,然后它将在 mdl_files 中搜索该文件,将其保存到正确的文件夹并相应地更新所有字段。
启用外部包类型(并启用“每次启动时更新”)。转到站点管理/插件/活动/SCORM,然后选中下面的框。现在您将能够直接从另一台服务器启动 SCORM 包,这样 Moodle 就不会搞砸了。当然,您可以运行其他(可能与跨域相关的)问题。
Sergey 的回答非常好,有一个警告:在他的 contenthash 的示例中abcde1234567890,文件存储在moodledata/filedir/ab/cd/name 下的文件夹中abcde1234567890。Moodle 使用完整的 contenthash 来命名文件。