如何在 Moodle 中使用用户 ID 找到用户角色
How can I find the user role using user id in moodle
我是 Moodle
的新手,我有以下代码:
$userDetails = $DB->get_record('user', array('id' => $singleuser->userid));
var_dump($userDetails);
echo $userDetails->firstname." ".$userDetails->lastname
Moodle
中有用户 table 的详细信息。如何找到教师、管理员、学生等角色?
这里我有用户 ID $singleuser->userid
。我正在打印用户全名。我需要像下面这样的角色:
echo $userDetails->firstname." ".$userDetails->lastname.$role.
如何找到角色?请指导我。
Moodle 版本:2.9.1
试试这个,
$context = get_context_instance (CONTEXT_SYSTEM);
$roles = get_user_roles($context, $USER->id, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;
或者试试这个,使用函数 get_user_roles,这将 return 在课程或站点或模块的上下文中分配给特定用户的角色列表
$context = get_context_instance(CONTEXT_COURSE, $courseid, true);
$roles = get_user_roles($context, $USER->id, true);
您还可以在模块上下文中获取角色。
$context = get_context_instance(CONTEXT_MODULE, $cm->id, true);
$roles = get_user_roles($context, $USER->id, true);
您需要知道您在 Moodle 中的哪个位置请求该角色。 Moodle(通常)没有 'student' 或 'teacher' 的全局概念 - 教师是特定课程的教师,学生是特定课程的学生。
假设您知道要为其显示角色的课程的 ID,您可以编写以下内容:
$rolestr = array();
$context = context_course::instance($courseid);
$roles = get_user_roles($context, $singleuser->userid);
foreach ($roles as $role) {
$rolestr[] = role_get_name($role, $context);
}
$rolestr = implode(', ', $rolestr);
echo "The users roles are {$rolestr} in course {$courseid}";
moodle 在 about..etc
等静态页面中获取用户角色
$context = context_module::instance($cm->id);
$roles = get_user_roles($context, $USER->id, true);
foreach ($roles as $role) {
}
我没有courseid,是否可以通过添加以下代码来获取角色。,
$context = context_system::instance();
$roles = get_user_roles($context, $userid, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;
我是 Moodle
的新手,我有以下代码:
$userDetails = $DB->get_record('user', array('id' => $singleuser->userid));
var_dump($userDetails);
echo $userDetails->firstname." ".$userDetails->lastname
Moodle
中有用户 table 的详细信息。如何找到教师、管理员、学生等角色?
这里我有用户 ID $singleuser->userid
。我正在打印用户全名。我需要像下面这样的角色:
echo $userDetails->firstname." ".$userDetails->lastname.$role.
如何找到角色?请指导我。
Moodle 版本:2.9.1
试试这个,
$context = get_context_instance (CONTEXT_SYSTEM);
$roles = get_user_roles($context, $USER->id, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;
或者试试这个,使用函数 get_user_roles,这将 return 在课程或站点或模块的上下文中分配给特定用户的角色列表
$context = get_context_instance(CONTEXT_COURSE, $courseid, true);
$roles = get_user_roles($context, $USER->id, true);
您还可以在模块上下文中获取角色。
$context = get_context_instance(CONTEXT_MODULE, $cm->id, true);
$roles = get_user_roles($context, $USER->id, true);
您需要知道您在 Moodle 中的哪个位置请求该角色。 Moodle(通常)没有 'student' 或 'teacher' 的全局概念 - 教师是特定课程的教师,学生是特定课程的学生。
假设您知道要为其显示角色的课程的 ID,您可以编写以下内容:
$rolestr = array();
$context = context_course::instance($courseid);
$roles = get_user_roles($context, $singleuser->userid);
foreach ($roles as $role) {
$rolestr[] = role_get_name($role, $context);
}
$rolestr = implode(', ', $rolestr);
echo "The users roles are {$rolestr} in course {$courseid}";
moodle 在 about..etc
等静态页面中获取用户角色$context = context_module::instance($cm->id);
$roles = get_user_roles($context, $USER->id, true);
foreach ($roles as $role) {
}
我没有courseid,是否可以通过添加以下代码来获取角色。,
$context = context_system::instance();
$roles = get_user_roles($context, $userid, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;