Php Moodle-添加新任务

Php Moodle-添加新任务,php,moodle,Php,Moodle,我想知道在Moodle中保存“作业”时,INSERT发生在哪里 这是一张图片 我在course/modedit.php中调整了文件,但没有做任何更改。可能它没有放在这里,或者它位于另一个文件夹中。知道在哪里可以找到它吗?向课程中添加模块由course/modedit.php控制,它处理显示特定于模块的创建表单(Conn引用的mod_form.php)、添加新模块、更新现有模块以及可能的其他内容 至于“实际”插入发生的位置,在modedit.php中有一个添加_moduleinfo(在cours

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

这是一张图片


我在
course/modedit.php
中调整了文件,但没有做任何更改。可能它没有放在这里,或者它位于另一个文件夹中。知道在哪里可以找到它吗?

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

至于“实际”插入发生的位置,在modedit.php中有一个添加_moduleinfo(在course/modlib.php中定义)的调用,然后调用负责插入到course_modules表中的add_course_module(在course/lib.php中定义)

在add_moduleinfo中还有一个对模块定义函数的调用,_add_instance(因此,在mod/assign/lib.php中定义了assign_add_instance),它调用assign::add_instance(在mod/assign/locallib.php中定义),实际插入到assign表中


看起来您正计划扩展assign模块以向数据库中添加字段。如果是这种情况,您肯定需要更改add_实例调用以及update_实例调用

您还必须编辑assign/mod_form.php以包含表单元素(modedit.php不是这样做的合适位置,因为它将应用于所有模块表单,除非您检查assign模块,但这有点麻烦)

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

无论何时更改模式,都需要在mod/assign/version.php中增加版本

如果您希望在备份和还原工作分配时保留新设置,还必须编辑mod/assign/backup/moodle2/backup\u assign\u stepslib.php,可能还需要编辑mod/assign/backup/moodle2/restore\u assign\u stepslib.php

当然,你会想使用这个新的领域,但我会让你自己决定


希望这有所帮助。

/mod/assign/mod_form.php是处理表单的地方,这将是一个很好的起点