我需要在菜单列表中显示所有moodle课程。 任何人都可以建议我如何使用PHP代码或moodle内置函数获取所有课程。
由于
答案 0 :(得分:9)
假设您正在编写要在Moodle中运行的代码,您可以使用get_courses()
中定义的lib/datalib.php
函数。例如:
<?php
require_once(PATH_TO_MOODLE_ROOT . '/config.php');
$courses = get_courses();
print_r($courses);
将打印出返回数组的数据转储,显示Moodle站点中所有课程的详细信息。这个例子显然不适合在生产站点上使用!
如果您在lib/datalib.php
中检查功能定义,您将看到可用于将结果集限制为特定字段或控制排序顺序的选项。
答案 1 :(得分:2)
包含此文件
require_once($CFG->dirroot . '/lib/coursecatlib.php');
使用此功能获取菜单列表中的所有课程。
$allcourses = coursecat::get(0)->get_courses(array('recursive' => true));
var_dump($allcourses);exit;
答案 2 :(得分:1)
如果您只想向学生展示注册课程,您可以使用以下方法。
require_once($CFG->dirroot.'/blocks/course_overview/locallib.php');
global $USER,$DB;
$courses = enrol_get_users_courses($USER->id, true);
OR 如果你想列出所有课程..
global $DB;
$query = "SELECT id, fullname, shortname from {course}";
$courselist = $DB->get_records_sql($query);
foreach ($courselist as $course) {
echo $course->fullname;
}
由于