Moodle имеет следующие архетипы по умолчанию для того, что вы называете инструктором;
- Менеджер
- coursecreator
- editingteacher
- Учитель
Пользователю может быть назначена одна из этих ролей в определенном контексте, таком контексте, как курс или, возможно, категория курса.
База данных хранит данные учителя в нескольких таблицах. Глядя на диаграмму схемы базы данных, которую вы показали, таблицы, которые вы ищете, находятся в группировке ролей. Конкретно роль и роль_присвоения. Связав эти таблицы с таблицами пользователя, контекста и курса, вы сможете найти сотрудников, связанных с курсами.
Примером функции для привлечения персонала, связанного с конкретным курсом, будет
function get_course_staff($courseid) {
global $DB;
$sql = "SELECT u.firstname,
u.lastname
FROM {role_assignments} ra
WHERE c.contextlevel = 50 // Numeric value of the course context
AND c.instanceid = ?
AND r.id < 5
JOIN {role} r ON ra.roleid = r.id
JOIN {user} u ON ra.userid = u.id
JOIN {context} c ON ra.contextid = c.id
JOIN {course} co ON c.instanceid = co.id
ORDER BY r.sortorder ASC";
return $DB->get_records_sql($sql, array($courseid));
}
Роль может быть назначена многим пользователям.
Пользователь может иметь много ролей.
Пользователю назначается роль в определенном контексте.