Automatriculación de profesores

Automatriculación de profesores

de Edgard Antonio Plaza Proboste -
Número de respuestas: 2

Hola a todos.

 

Soy nuevo en este foro, aunque tengo experiencia con las opciones y funciones administrativas de moodle a nivel gráfico, me gustaria aprender más pero desde el origen es decir, desde la BD.

 

Se me ha solicitado un formulario que inscriba a una persona como profesor con permisos de edición (rolid 3) en un curso generado automaticamente para él. Para ello mi script realiza los siguientes pasos:

- Recupera los datos solicitados en el formulario de registro. (nombre, apellido, ciudad, pais, email, profesion,ancho de banda, genero, usuario, contraseña, nombre del curso, nombre corto para el curso)

- En la base de datos de la moodle inserto datos en las siguientes tablas:

1- mdl_user: INSERT INTO mdl_user(id,auth,confirmed,policyagreed,mnethostid,username,password,firstname,lastname,email,city,country,lang,timezone) VALUES(null,'manual','1','0','1','$usuario','$secreto','$nombre','$apellido','$email','$ciudad','$pais','es_utf8','99');

- mdl_course: INSERT INTO mdl_course(category,fullname,shortname,showgrades,numsections) VALUES(1,'$nombre','$nombre_corto',1,10);

- mdl_block_instance: Para agregar bloques al curso creado

- mdl_context: Para que aparezca el curso en el aula

- mdl_role_asignament: Para matricular como profe al alumno en el curso nuevo.

La cosa es que al teminar el proceso, efectivamente se da de alta al usuario en el aula, se crea el curso pero al ingresar con el nuevo acceso, despues de logearse, hago click en el curso y me dice que aun no estoy matriculado, y no me deja entrar.

 

¿Alguna idea?

Promedio de valoraciones: -
En respuesta a Edgard Antonio Plaza Proboste

Re: Automatriculación de profesores

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

Si estás usando Moodle 2.0 o posterior, te recomiendo que no insertes datos directamente en las tablas como estás haciendo, puesto que hay algunas tablas más que controlan la matriculación, los bloques, los contextos, etc.

Personalmente yo usaría las funciones 'create_user_record()' de lib/moodlelib.php, 'create_course()' de course/lib.php y luego código similar al que puedes ver en la función 'enrol_try_internal_enrol()' de lib/enrollib.php (tendrás que usar el método 'add_instance()' del objeto $enrol, para añadir la instancia de matriculación 'manual' antes de llamar al método enrol_users(), de lo contrario te saltará una excepción de ejecución).

Eso siempre que no puedas usar los web services que vienen de serie a partir de 2.0 (y que se van ampliando y completando cada vez más en cada nueva versión).

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Automatriculación de profesores

de Edgard Antonio Plaza Proboste -

Hola:

Gracias por responder.

Yo estoy usando moodle 1.9.16+ y todo me sale bien, pero no se porqué al finalizar el proceso, y entrar con el usuario creado no me deja entrar en el curso siendo que aparece el mismo como profesor.

 

concretamente, que tablas participan en el proceso de matriculacion y creacion de cursos, según sé son:

- insertar alumno en mdl_user

- insertar curso en mdl_course

- insertar contexto en mdl_context

- insertar bloques al curso en mdl_block_instance

- insertar al usuario como profe en mdl_role_assignaments.

Falta algo?

 

Saludos