簡體   English   中英

如何在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有用戶表的詳細信息。 如何找到教師、管理員、學生等角色?

這里我有$singleuser->userid 我正在打印用戶全名。 我需要這個角色,如下所示:

echo $userDetails->firstname." ".$userDetails->lastname.$role.

我如何找到角色? 請指導我。

Moodle版本:2.9.1

您需要知道在Moodle中的哪個位置。 Moodle(通常)沒有“學生”或“老師”的全局概念-教師是特定課程的老師,學生是特定課程的學生。

假設您知道要顯示其角色的課程的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) { 

}

嘗試這個,

$context = get_context_instance (CONTEXT_SYSTEM);
$roles = get_user_roles($context, $USER->id, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;

或嘗試使用get_user_roles函數,這將返回在課程,站點或模塊的上下文中分配給特定用戶的角色列表

$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);

我沒有courseid,是否可以通過添加以下代碼來獲得角色。,

$context = context_system::instance();
$roles = get_user_roles($context, $userid, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM