Moodle以语法设置模块序列

时间:2018-05-09 10:34:53

标签: module moodle

在管理将模块添加到Moodle programmaticaly后(请参阅我的旧问题here)我现在还需要在特定位置添加模块。

让我们举一个Moodle的示例课程,我有:

Section 0
 - Module 1
 - --> ADD NEW MODULE HERE <--
 - Module 2
Section 1
 - Module 1
 - Module 2
Section 2

所以我需要在第0节的模块1和2之间添加我以编程方式创建的新模块。

我知道模块的顺序来自表 mdl_course_sections ,它在序列列中指定,其中模块的ID以逗号分隔值存在

Moodle中有功能吗?设置一个部分的顺序?我不想直接搞砸数据库。

1 个答案:

答案 0 :(得分:0)

在我从Moodle社区得到一些帮助后(感谢Sam Chaffee),这是解决方案

//...Do stuff to create module object...
// ...

$moduleinfo = add_moduleinfo($newlabel, $section);

//lets get all sections and modules of the course
$coursemodinfo = get_fast_modinfo($course->id, 0, false);

//get all sections of the course
$coursesections = $coursemodinfo->get_sections();

//get the first section, get_section will return an array of sections so I get position 0 to get section 1
$section01 = $coursesections[0];

//get the first module in the section so we can add on top of it
$firstmodid = $section01[0];

//We need to get cm_info for the specific mod
$mod = $coursemodinfo->get_cm($moduleinfo->coursemodule);

//we also need section_info for the section we want to move to
$sectioninfo = $coursemodinfo->get_section_info(0);

//move the newly created module to section 01 but before $firstmodid
moveto_module($mod, $sectioninfo, $firstmodid);