Agregar registros directamente a las tablas de la base de datos moodle

Agregar registros directamente a las tablas de la base de datos moodle

de javi lopez -
Número de respuestas: 1

Muy buenas,

Tengo una Moodle 2.9 (Build: 20150511)

Estoy desarrollando un sistema que me permita agregar restricciones de fechas a grupos desde la importación de un fichero. Es decir, automatizar la configuración de fechas (para aperturas/cierres de secciones de alumnos) mediante unos datos almacenados en Excel, creando el grupo (mdl_groups) y llevando los datos a la tabla destino (mdl_course_sections).

No tengo idea de programación de módulos para Moodle y me he puesto a desarrollar algo externo en AngularJS (frontend) y PHP (backend). De hecho, funciona bastante bien atacando a la BDd por MySQL.


El sistema hace:

  • leer un fichero de Excel con información de cursos, grupos y fechas de inicio
  • trata dicha información y la combina con una autogeneración de grupos y asociación de cursos-grupos y meses
  • inserción y extracción de registros en formato JSON desde la BDD


Pues bien, automatiza pero existe un PERO. Me veo obligado a "forzar" la actualización de la BBD desde Moodle. 

Me explico, los registros son insertados correctamente y los veo mediante MySQLFront. Pero aún no los puedo "usar" dentro Moodle. Necesito guardar algo dentro de Moodle y ya son visibles. Ej: inserto una serie de grupos (para asignárselos a unos cursos) mediante mi programa. Pero para que estos sean visibles debo, en cada curso, agregar un grupo de prueba (que luego elimino) y ya están disponibles.


Existe algún proceso paralelo que realice esta acción. He leído ejecutando cron desde la web:  http://www.minombremoodle.com/admin/cron.php y lo ejecuta correctamente (Cron script completed correctly), pero algo me dice que esto no es. (hilo: https://moodle.org/mod/forum/discuss.php?d=340216)


También he visto algo en referencia a un script para sincronizar los datos de la BDD sobre exec("php -f ".JPATH_SITE."/aula/auth/db/cli/sync_users.php");  (link: http://www.regochan.com/moodle/item/83-sincronizar-usuarios-matriculaciones-y-cursos-en-moodle-desde-bases-de-datos-externas)


¿Alguien podría arrojar luz al tema? 


Gracias y saludos

Promedio de valoraciones: -
En respuesta a javi lopez

Re: Agregar registros directamente a las tablas de la base de datos moodle

de Jose Maria Blanquer -

Buenas javi!

Yo desarrollo plugins para Moodle, pero no he hecho pruebas en inserción en base de datos de grupos de usuarios.

Como consejo/ayuda, puedo decirte que vayas a la pagina de inserción/edición de grupos, entras en el php (por ejemplo course/view.php entrarías en view) y insertas $DB->set_debug(true) esto mostrara todas las consultas que utiliza moodle en la pantalla.

No se si me explicado bien, si no has entendido algo, pregunta, pero vamos, la idea es que entres al archivo php del moodle(mejor si lo haces de forma local) y edites el archivo, poniendo al principio del archivo(lo recomendable seria buscar el trozo de código que ejecuta) y pongas la linea que te he comentado, y cuando termine de ejecutar ese código, el parámetro lo pones en false, y así tendrás justo las consultas que se ejecutan para la creación de grupos..

Un saludo!