Moodle - 添加新作业

时间:2015-08-21 07:36:45

标签: php moodle

我想知道在Moodle中保存“作业”时INSERT在哪里发生。

这是一张图片。

Adding a new Assignment

我在course/modedit.php中调整了文件,但没有进行任何更改。也许它不是放在这里或它位于另一个文件夹。知道我在哪里找到它?

1 个答案:

答案 0 :(得分:1)

向课程添加模块由course / modedit.php控制,它处理显示模块特定的创建表单(Conn引用的mod_form.php),添加新模块,更新现有模板以及可能的其他内容。 / p>

至于"实际"插入发生时,在modedit.php中调用add_moduleinfo(在course / modlib.php中定义),然后调用add_course_module(在course / lib.php中定义),负责插入course_modules表。

同样在add_moduleinfo内部是对模块定义函数的调用,_add_instance(因此在原因中为assign_add_instance,在mod / assign / lib.php中定义),调用assign :: add_instance(在mod / assign / locallib.php中定义) )它实际插入到分配表中。

您似乎正计划扩展assign模块以向数据库添加字段。如果是这种情况,您肯定需要更改add_instance调用以及update_instance调用。

您还必须编辑assign / mod_form.php以包含您的表单元素(modedit.php不是正确的地方,因为它适用于所有模块表单,除非您进行检查对于一个分配模块,但这有点像kludgey。)

您还必须更改表本身以添加新列,理想情况下编辑mod / assign / db / install.xml和mod / assign / db / upgrade.php,以便新安装和升级工作相同。

无论何时进行架构更改,都需要在mod / assign / version.php中增加版本。

如果您希望在备份和恢复作业时保留新设置,则还需要编辑mod / assign / backup / moodle2 / backup_assign_stepslib.php以及可能的mod / assign / backup / moodle2 / restore_assign_stepslib.php以及。

然后你当然想要使用这个新领域,但我会把它留给你。

希望这有所帮助。