Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Alta masiva de alumnos (usuarios) y matricular en cursos con Moodle




Cuando trabajamos con Moodle, una de las opciones más interesantes es poder matricular y desmatricular en cursos y también poder dar de alta usuarios en Moodle




Para dar de alta un usuario en Moodle 1.9 tan sólo era necesario añadir una entrada a la tabla mdl_role_assignements



       $query = "SELECT * FROM mdl_role_assignments WHERE contextid=".$course_context_id." AND userid=".$id_usuario." AND roleid=".$roleid;

Tan sólo necesitábamos saber el roleid (profesor, estudiante, coordinador), el id del curso (contextid) y el id del usuario (userid)

 $query = "INSERT INTO mdl_role_assignments (`roleid`,`contextid`,`userid`,`timemodified`,`modifierid`) VALUES (".$roleid.",".$course_context_id.",".$id_usuario.",".$tiempo.",2)";
En el nuevo Moodle 2.x la cosa cambia bastante y hay  tres tablas implicadas en la asignación de alumnos-cursos



  •  mdl_role_assignments
  • mdl_enrol
  •  mdl_user_enrolments

Hay que tener en cuenta que el campo id de la tabla mdl_enrol  es igual al campo enroild de la tabla mdl_user_enrolments


Subida masiva usuarios con moodle

Dar de alta usuarios en Moodle usando ficheros de texto plano


    Página Principal/ ► Administración del sitio/ ► Usuarios/ ► Cuentas/ ► Subir usuarios

Se recomienda que el fichero plano de texto tenga la codificación UTF-8 puesto que es el estándar de Moodle.

Podemos realizar una alta masiva de usuarios en un fichero csv separado por , o ; o ;

username,idnumber,password,firstname,lastname,email,lang,cohort1
usuario,usuario,pass,Nombre,Apellido1 Apellido2,usuario@elhacker.net,es,Alumnos_primero
usuario2,usuario2,pass2,Nombre2,Apellido1 Apellido2,usuario2@elhacker.net,es,Alumnos_primero

  • Cada línea del archivo contiene un registro
  • Cada registro es una serie de datos separados por comas
  • El primer registro del archivo es especial, y contiene una lista de nombres de campos. *Este registro define el formato del resto del archivo.
Campos requeridos: Estos campos deben estar presentes en el primer registro, y deben definirse para cada usuario.

username, password, firstname, lastname, email


Campos por defecto: Estos son opcionales -si no están presentes, se tomarán los valores del administrador primario
institution, department, city, country, lang, timezone

Campos opcionales: todos estos son opcionales. Los nombres de los cursos son sus "nombres cortos" -si se incluyen los nombres cortos de los cursos el alumno se inscribirá automáticamente en esos cursos.
idnumber, icq, phone1, phone2, address, url, description, mailformat, maildisplay, htmleditor, autosubscribe, course1, course2, course3, course4, course5, group1, group2, group3, group4, group5

Además podemos elegir las acciones que se efectuarán en caso que el usuario ya existan:

Tras la previsualización se debe elegir la opción de creación:  (Tipo de subida)

  • Agregar sólo nuevos, pasar por alto usuarios existentes.
  • Agregar todo, añadir contador a nombres de usuarios si fuera necesario. 
  • Agregar nuevos y actualizar usuarios existentes
  • Actualizar sólo usuarios existentes.

La contraseña de los usuarios puede definirse en el archivo o permitir que la plataforma la genere automáticamente. Esta última opción es recomendable sólo en el caso de que se haya configurado el servicio de correo para remitir al usuario los datos de acceso.

Si se habilita la opción de prevenir  duplicados  de dirección  de email, en el caso de que el archivo contenga  un registro con una dirección de correo ya existente en la plataforma,  nos lo notificará y no lo tendrá en cuenta para la subida o actualización.

 El apartado de roles permite interpretar los campos type (type1, type2,…) que pueden existir en el archivo asociados a la matriculación  de un usuario en cursos. El número que se adjudica en el archivo se traduce en el menú a un rol. Es una forma cómoda de asignar roles a usuarios sin tener que utilizar los campos role1, role2,…

Configuración:

  • Contraseña de nuevo usuario
  • Detalles de usuario existente
  • Contraseña de usuario existente
  • Forzar cambio de contraseña
  • Permitir renombrar
  • Permitir eliminar
  • Permitir suspensión y activación de cuentas
  • Prevenir duplicados de dirección email
  • Estandarizar nombres de usuario
  • Seleccionar para operaciones masivas

Dar de alta usuarios-cursos (Métodos de inscripción) - Matriculación mediante archivo de texto

Matricular y desmatricular usuarios en cursos


  Página Principal/ ► Administración del sitio/ ► Extensiones/ ► Matriculaciones/ ► Gestionar plugins de matriculación

Archivo plano (CSV) (Flat File)

admin/settings.php?section=enrolsettingsflatfile

Primero debemos especificar la ruta (path) del fichero plano

enrol_flatfile | location


/home/moodle/altas/alumnos_asignaturas.txt

Formato fichero plano:

* operación, rol, idnumber(usuario), idnumber(curso) [, starttime, endtime]

* operación = add | del (Donde el campo add es añadir (matricular) o del eliminar (desmatricular))
* rol = student | teacher | teacheredit (student es el rol de la matriculación (puede ser student, teacher, teacheredit))
* idnumber(user) = campo idnumber de la tabla mdl_user. NO es el campo id de la tabla mdl_user
* idnumber(course) = campo idnumber de la tabla mdl_course. No es el "Nombre corto del curso" es el "Número ID del curso"
*  Hora de inicio = hora de inicio (en segundos desde la época) - opcional
* Tiempo final de cierre (en segundos desde la época) - opcional


El campo idnumber de la tabla mdl_user por defecto está vacío.

Podemos actualizar el campo idnumber con el campo username con la siguiente consulta:

UPDATE mdl_user SET mdl_user.idnumber = mdl_user.username; 

Añadimos al usuario "usuario" (matriculación) como estudiante a la asignatura id_curso

add, student, usuario, id_curso
add, student, usuario2, id_curso

Desmatriculamos (damos de baja al usuario del curso)

del, student, usuario, id_curso
del, student, usuario2, id_curso

El último paso es llamar al archivo que ejecuta el cron periódico de mantenimiento de Moodle para forzar la actualización:

http://moodle.elhacker.net/admin/cron.php


Si tuviéramos algún error en la configuración, se indicaría en este fichero y también se manda un reporte por e-mail

Dar de alta cursos en Moodle

Moodle 2.6.x llevará por fín y por defecto una herramienta para hacer altas masivas con ficheros de texto cursos.

Mientras tanto podemos añadir este plugin en la carpeta admin/tools

https://github.com/piersharding/moodle-tool_uploadcourse

Formato de archivo CSV


Campos posibles son:



fullname, shortname, category, idnumber, summary, format, showgrades, newsitems, teacher, editingteacher, student, modinfo, manager, coursecreator, guest, user, startdate, numsections, maxbytes, visible, groupmode, restrictmodules, enablecompletion, completionstartonenrol, completionnotify, hiddensections, groupmodeforce, lang, theme, cost, showreports, notifystudents, expirynotify, expirythreshold, requested, deleted, oldshortname, backupfile, templatename, reset,

Ejemplo:

fullname,shortname,category,idnumber,summary
Inglés, Ingles, Curso13-14, ENG, Clases de Inglés

3 comentarios :

Pancho dijo...

Amigo, quizas le interese saber que existe una api llamada wspp que provee una capa de servicios web SOAP, facilitando la integregacion con otros sistemas. Existen clientes en muchos lenguajes, yo lo he utilizado en php y en java.

Byron Alvarez S. dijo...

Saludos,
Amigo quisiera pedirte que si tienes mas tablas de la base de moodle con relaciones como las que muestras en este articulo, me ayudes publicandolas.
He buscado algo parecido y eres el único que hace un analisis asi, bien detallado del proceso de matriculación.

Gracias!

Jorge Alberto Parra Bedoya dijo...

Saludos,
Alguien sabe como consumir la api de moodle desde c#

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.