hola a todos... necesito ayuda.. estoy desarrollando un bloque para moodle 2.6 necesito hacer una consulta que me muestre los estudiantes y el curso al que pertenecen. pero como soy nuevo en esto no he podido desarrollarla no se donde puedo ver las tablas de la base de datos de moodle para estructurar mi consulta. mil gracias por su colaboración
Hola
puedes probar con las funciones que incorpora Moodle haciendo uso de sus diferentes APIS
https://docs.moodle.org/dev/Core_APIs
En particular, te pueden ser muy útiles
$students = get_enrolled_users(get_context_instance(CONTEXT_COURSE, $course->id), $withcapability = '', $groupid = 0, $userfields = 'u.*', $orderby = 'id', $limitfrom = 0, $limitnum = 10); // array usuarios por idcourse
$mycourses = enrol_get_all_users_courses($user->id, true, NULL, 'visible DESC,sortorder ASC'); // array cursos por usuario
Espero que pueda serte útil
Saludos!!
Muchas gracias Paco.... voy a probar con la dos y te cuento como me fue
Hola paco... Muchas gracias por tu aporte he logrado mostrar en un bloque aparte los alumnos, me gustaría saber si hay alguna forma de saber a nivel de base de datos cuando un alumno ha realizado una actividad gracias de antemano.
Hola Cristian,
tienes varias opciones.
Puedes utiizar las propias funciones del módulo en concreto, que deberían localizarse en mod/mymod/locallib.php (o en cualqier otra librería importada), nos encontramos (por ejemplo en quiz) con algunas tan útiles como
/**
* @param int $quizid The quiz id.
* @return bool whether this quiz has any (non-preview) attempts.
*/
function quiz_has_attempts($quizid) {
global $DB;
return $DB->record_exists('quiz_attempts', array('quiz' => $quizid, 'preview' => 0));
}
$attempts = quiz_get_user_attempts($quizid, $userid);
De esta sencilla forma, en sólo dos pasos podemos saber si un quiz ha tenido algún intento y luego obtener información sobre el intento de un usuario en particular.
Recuerda que para obtener la información de módulos por curso, puede serte muy útil
$cs = get_coursemodules_in_course('quiz', $courseid );
Desde donde podemos encontrar la información sobre el id, tanto del módulo como de la instancia.
La otra opción es atacar directamente a la base de datos
Depende del recurso del que quieras tener información, seleccionas la consulta que pueda encajarte, {quiz_attempts} en el ejemplo que vemos, donde podemos filtrar por quiz, userid y attempt, bien en {scorm_scoes_track}, del que podemos conocer los intentos por usuario.
Espero que pueda serte útil
Saludos!!
MUCHAS GRACIAS!!!!!!!!!!!
Paco voy a trabajar con la información que acabas de dar y te cuento las dudas que vayan surgiendo