Duda sobre como diferenciar usuarios

Duda sobre como diferenciar usuarios

de Santiago Nieto Carrera -
Número de respuestas: 2
Hola
estoy realizando un modulo de prueba y quiero realizar un tablon donde escribe solamente el profesor (a lo mejor es un ejemplo dificil, pero bueno).

Queria saber como se diferencia al usuario que acaba de entrar en la actividad para que ejecute un codigo o le otro (una variable que me diga si es profesor, alumno, invitado,etc.).

Otra duda que tengo es que he realizado un print_textarea donde guardo en $text y queria saber como añadir un boton de envío a la pagina que se lanza cuando accedo a la actividad (despues de creada) para que cuando entre el alumno le pueda enviar ese contenido. Supongo que lo tendre que guardar en una base de datos ¿no?

Un saludo.

Promedio de valoraciones: -
En respuesta a Santiago Nieto Carrera

Re: Duda sobre como diferenciar usuarios

de Juan Pueyo -

Hola,

1.- Puedes utilizar las variables globales siguientes: $CFG, $COURSE, $USER.

$USER->id te devuelve un valor que corresponde con el id de la tabla {$CFG->prefix}user, que es el id del usuario logueado.

Una vez tengas el id puedes atacar la base de datos y analizar el rol de dicho usuario para saber si es un alumno, un profesor, etc. Puede que este post te sirva de ayuda para entenderlo: http://moodle.org/mod/forum/discuss.php?d=115539

Te pongo la query que necesitas:

SELECT id, name, shortname FROM {$CFG->prefix}role
WHERE {$CFG->prefix}role.id = (SELECT roleid FROM {$CFG->prefix}role_assignments WHERE userid = $USER->id)

por ejemplo, si el usuario logueado es estudiante, el campo shortname de la query anterior te va a devolver "student".

2.- No entiendo muy bien la pregunta, pero puedes hacer un formulario con echos o un botón utilizando un método de Moodle: print_single_button()

saludos.