2

我想要一个更好的工作流程来调试上传的 SCO。事实上,我必须在活动中编辑一个文件,重新打包,上传和测试。通常,我只需要更改一行代码。能够在服务器上编辑该文件、那行代码将是非常好的。到目前为止,我所发现的只是 Moodle 管理文件,因此在上传后定位和破译重命名的文件似乎是不切实际的。

有没有办法配置 Moodle,使其在提取时不会重命名和重新定位 SCO 中的文件?实际上,我愿意接受有关调试 SCO 的最佳、最快工作流程的任何建议。

4

2 回答 2

4

问题背景

从 Moodle 2.0 开始,文件不再以传统/this/is/the/path/to/my.file方式存储在服务器上。相反,文件被重新散列并存储在存储库中(即moodledata作为看似随机数据的集合分布在整个文件夹中)。这提高了安全性和跨操作系统兼容性,但对于那些想通过 FTP 简单地上传 SCORM zip 包的人来说,事情变得复杂了。以下是有关Moodle 2.0 中文件处理的更多信息

解决方案的路径

让我们找到您要更新的文件,然后更新它。

  1. 运行 phpmyadmin,转到mdl_files表,在字段中按名称查找文件filename(假设是portrait.jpg
  2. 看看contenthash场,它看起来像abcde1234567890。这意味着您的文件存储在moodledata/filedir/ab/cd/名称下的文件夹中abcde1234567890
  3. 将更新的内容重命名portrait.jpgabcde1234567890、上传和覆盖。
  4. 返回 phpmyadmin 并使用更新文件的大小更新filesize记录中的字段。portrait.jpg

显然,这个过程可以自动化。您必须编写一个允许您上传文件的脚本,然后它将在 mdl_files 中搜索该文件,将其保存到正确的文件夹并相应地更新所有字段。

另类的想法

启用外部包类型(并启用“每次启动时更新”)。转到站点管理/插件/活动/SCORM,然后选中下面的框。现在您将能够直接从另一台服务器启动 SCORM 包,这样 Moodle 就不会搞砸了。当然,您可以运行其他(可能与跨域相关的)问题。

于 2013-04-08T13:35:29.637 回答
3

Sergey 的回答非常好,有一个警告:在他的 contenthash 的示例中abcde1234567890,文件存储在moodledata/filedir/ab/cd/name 下的文件夹中abcde1234567890。Moodle 使用完整的 contenthash 来命名文件。

于 2015-11-06T19:47:20.613 回答