9

我需要在菜单列表中显示所有 moodle 课程。谁能建议我如何使用 php 代码或 moodle 内置函数获得所有课程。

谢谢

4

3 回答 3

11

假设您正在编写要在 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您将看到可用于将结果集限制为特定字段或控制排序顺序的选项。

于 2013-08-12T09:23:37.120 回答
3

包括这个文件

require_once($CFG->dirroot . '/lib/coursecatlib.php');

使用此功能可获取菜单列表中的所有课程。

$allcourses = coursecat::get(0)->get_courses(array('recursive' => true));

var_dump($allcourses);exit;
于 2015-05-18T06:26:17.217 回答
1

如果您只想向学生显示已注册的课程,您可以使用以下方法。

require_once($CFG->dirroot.'/blocks/course_overview/locallib.php');
global $USER,$DB;
$courses = enrol_get_users_courses($USER->id, true);

或者,如果您想列出所有课程..

global $DB;
$query = "SELECT id, fullname, shortname from {course}";
$courselist = $DB->get_records_sql($query);
foreach ($courselist as $course) {
    echo $course->fullname;
}

谢谢

于 2017-05-05T08:14:23.663 回答