Usar cron moodle

Usar cron moodle

de Angel Jimenez -
Número de respuestas: 3
Hola a todos, tengo una duda. Voy a tratar de explicarla lo mejor posible.

Tengo un modulo que manda emails, segun el alumno no haya entrado, o lleve un numero de test hechos, de momento este modulo el profesor, tiene que elegir mediante un formulario, que tipo de mail mandar.

Mi pregunta es la siguiente, me gustaria automatizar este modulo para que el cron lo haga solo, que cada cierto tiempo mande un mail, pues segun corresponda.

La cosa es que no se por donde empezar, tengo el cron activado, pero ahora no se donde tengo que poner el codigo o que hacer para que funcione de forma automatica.

Gracias.
Promedio de valoraciones: -
En respuesta a Angel Jimenez

Re: Usar cron moodle

de Xavier Paz -
Echa un vistazo a este tema, donde se dan algunos detalles de por donde empezar.

http://moodle.org/mod/forum/discuss.php?d=127903
En respuesta a Xavier Paz

Re: Usar cron moodle

de Angel Jimenez -

Hola, gracias por el enlace, he estado mirandolo (no tengo mucho tiempo la verdad, pero no me aclaro).

Tengo un bloque que es un formulario en el que se eligen los cursos y el tipo de mail que se va a mandar entre 3 posibles a los alumnos de esos cursos. La cosa es que me piden que en lugar de enviarlo ya directamente (cosa que tengo hecha) lo haga solo por las noches.

Aqui es donde me quedo, no se si el codigo de envio lo tengo que poner en algun fichero especial para que el cron lo reconozca dentro de mi bloque.

Los datos del formulario los almaceno en una base de datos para que se queden los cambios mientras no se mande el mail.

Mis ficheros son dentro del bloque block_notificar.php form_notificar.php mandarmail.php

Gracias

En respuesta a Angel Jimenez

Re: Usar cron moodle

de Xavier Paz -
En mi opinión, bastaría con hacer una comprobación de la hora actual en que se realiza la ejecución y si no está dentro del rango permitido, no ejecutar nada. Por ejemplo:

Rango nocturno/madrugada => de 00:00 AM a 06:00 AM

Justo antes de realizar todos los envíos, obtienes la hora actual en formato 24 horas (solo la hora, no los minutos ni los segundos) y miras si dicho valor cae dentro del rango que te interesa (0-6 AM)

Si cae dentro, efectuas el envío, sino sales directamente con exit, o return en caso de que estés en una función.

La otra posibilidad sería programar la ejecución del cron en esas horas.