Как найти роль пользователя, используя идентификатор пользователя в moodle

Вопрос: Я новичок в Moodle и у меня есть следующий код: $userDetails = $DB->get_record('user', array('id' => $singleuser->userid)); var_dump($userDetails); echo $userDetails->firstname." ".$userDetails->lastname Он содержит детали пользовательской таблицы в Moodle. Как я могу найти такую роль, как Учитель, Админ, ученик? Здесь у меня есть userid $singleuser->userid. Я печатаю полное имя пользователя. Мне нужна роль вместе с ним:

Вопрос:

Я новичок в Moodle и у меня есть следующий код:

$userDetails = $DB->get_record(‘user’, array(‘id’ => $singleuser->userid)); var_dump($userDetails); echo $userDetails->firstname.» «.$userDetails->lastname

Он содержит детали пользовательской таблицы в Moodle. Как я могу найти такую роль, как Учитель, Админ, ученик?

Здесь у меня есть userid $singleuser->userid. Я печатаю полное имя пользователя. Мне нужна роль вместе с ним:

echo $userDetails->firstname.» «.$userDetails->lastname.$role.

Как я могу найти роль? Пожалуйста, направляйте меня.

Версия Moodle: 2.9.1

Лучший ответ:

Вам нужно знать, где в Moodle вы просите о роли. У Moodle нет (обычно) глобальной концепции “ученика” или “учителя” – учитель – учитель на определенном курсе, студент – студент по определенному курсу.

Предполагая, что вы знаете идентификатор курса, на котором вы хотите отобразить роль (ы), вы можете написать следующее:

$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}»; Ответ №1

moodle получает роли пользователя в статических страницах, например about..etc

$context = context_module::instance($cm->id); $roles = get_user_roles($context, $USER->id, true); foreach ($roles as $role) { } Ответ №2

попробуй это,

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

Оцените статью
Добавить комментарий