Consulta Sobre Tablas

Consulta Sobre Tablas

de giannca gomez -
Número de respuestas: 1
Buenas noches,

Necesito hacer una consulta en la cual pueda obtener que rol posee un usuario x dentro de un curso y, e analizado las tablas de moocle y siempre llego a la tabla role_assigments, alli puedo ver que se encuentran los id de los usuarios y el id del rol de cada uno de ellos, pero no puedo relacionarla con la tabla course, agradeceria si alguien se topo con este problema y le dio solcucion, gracias de antemano.
Promedio de valoraciones: -
En respuesta a giannca gomez

Re: Consulta Sobre Tablas

de Xavier Paz -
Se puede hacer de varias formas, pero en todas necesitas el id de usuario y el id del contexto que en se relacionan dicho usuario y dicho rol (puede ser un curso, uno bloque, un grupo, una categoría, etc..)

El id de usuario se consigue de la tabla users, y el contexto se obtiene mediante la función get_context().

$contexto_curso=get_context(CONTEXT_COURSE,$id_curso);

Tras recopilar todo, puedes llevar a cabo una consulta parecida a esta:

SELECT *
FROM role_assignments ra, role r
WHERE ra.userid = id_usuario
AND ra.contextid =id_contexto

Entre otras cosas obtendrás el id del rol o roles del usuario. A continuación solo tienes que realizar una consulta en la tabla role con los resultados obtenidos y conseguirás los nombres de los roles.

Por otro lado, también puedes usar la función get_user_roles_in_context en /lib/accesslib.php (linea 4028). Basta con reunir los parámetros y pasárselos a la función, lo que ocurre es que la información devuelta por dicha función tiene un determinado formato y posiblemente tengas que procesarla, para obtener la información que deseeas.