我想要一个更好的工作流程来调试上传的 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 来命名文件。