Creacion de cursos

Creacion de cursos

de spank hard -
Número de respuestas: 3

Hola que tal compañeros moodle-leros, vengo a ustedes con una gran duda. Estoy creando cursos manualmente(los creo insertandolos en la tabla course) ya que esta creada funciona todo bien, despues viene lo importante, la insercion de privilegios(eso se realiza en una tabla que se llama role_assignments ahi vienen 3 campos muy importantes el userid, roleid y contextid.)

Userid representa al usurio->nombre,usuarios,correo, etc.

Roleid representa el rol del usuario->admin,teacher,student,etc.

Contextid representa el curso al cual se le va a asignar el rol. Rol de teacher,admin, studen, etc.

Mi problema es que no se como conseguir el Contextid, ya revise todas las tablas y ninguna me dice cual contiene el contextid. Si alguien me pudiera ayudar a encontrar este dato se lo agradeceria muchisimo. Saludos y buen dia

Promedio de valoraciones: -
En respuesta a spank hard

Re: Creacion de cursos

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

En general no es muy buena idea hacer lo que estás haciendo, porque la estructura de la base de datos en lo referente a los cursos y la matriculación suele variar de vez en cuando entre versiones. Y a veces de forma sustancial. Por ejemplo, de 1.9 a 2.0 ha habido cambios muy importantes en ese área.

Mi opinión particular es que es preferible, cuando sea posible, usar algunos de los plugins de matriculación existentes (varios de ellos permiten crear cursos, además de matricular a los usuarios). Si necesitamos algo más de flexibilidad, entonces prefiero usar las funciones estándar de Moodle para llevar a cabo las tareas. De esta forma me evito conocer un montón de detalles de la base de datos y me aseguro de que se llevan a cabo todas las operaciones necesarias en todas las tablas implicadas.

En todo caso, respondiendo a la pregunta original, el contextid se saca de la tabla mdl_context, cruzándola con la tabla mdl_course. Los contextos de tipo curso tienen un valor de 50 para la columna 'contextlevel', y la columna 'instanceid' en este caso es una clave externa sobre la columna 'id' de la tabla mdl_course.

Para ver como se relacionan los cursos con su contextid, puedes ejecutar una consulta como esta:

SELECT con.id as contextid, con.instanceid, c.shortname
  FROM mdl_context con 
  JOIN mdl_course c on con.instanceid = c.id
 WHERE contextlevel = 50;

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Creacion de cursos

de spank hard -

Muchas gracias por la respuesta Iñaki, lo que queria lograr es que cuando un usuario se registrara se creara un curso automaticamente con el nombre del usuario y que ademas le asiganara que fuera el maestro de ese curso. La verdad quedo bastante bien, y los datos que mencionas son los correctos. Ojala los hubiera visto antes, por ke tarde bastante en encontrar la relacion. Pero aun asi muchas gracias, la proxima vez ke buske algo seras el primero al que le pregunte. Salu2

En respuesta a spank hard

Re: Creacion de cursos

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Espero que lances la pregunta al foro en lugar de a mi directamente sonrisa

Básicamente por dos ventajas:

  • una para tí, y es que hay más gente que potencialmente te puede responder (no todos tenemos iempo disponible siempre, y no siempre cuando quien pregunta lo necesita).
  • una para el resto de personas, y es que la respuesta (si la hay) también queda de forma pública para que le sea útil a otros sonrisa

Saludos. Iñaki.