CUL Course Visibility Update

Maintained by Amanda Doughty
Scheduled task to update course visibility based on start and/or end date.
Price option: Free

Supports Moodle 3.2-4.0 See all versions
Latest release: 4 years ago
Installations: 164
Downloads (last 90 days): 27

Frankenstyle name: local_culcourse_visibility
Local plugins

Comments

Comments are no longer open for new posts. Existing comments remain available to read.

En el archivo db/tasks.php, donde pone 'minute' => '00', hay que poner 'minute' => '*/5', y donde pone 'hour' => '01', poner 'hour' => '*',
En el archivo version.php del raíz cambia $plugin->version por un número superior al que tengas.
Por último, el cambio más importante es en el archivo classes/task/update_course_visibility.php, donde hay que sustituir toda la función execute actual por esta otra:
public function execute() {
global $DB;
$t0 = microtime(true);
$now = time();
$showcourses = [];
$hidecourses = [];
$config = get_config('local_culcourse_visibility');
if (!empty($config->showcourses)) {
mtrace("\n Searching for courses to make visible ...");
// Hacer visibles los cursos cuyo startdate YA ha llegado.
$select = "visible = 0 AND startdate > 0 AND startdate <= :now";
$showcourses = $DB->get_records_select('course', $select, ['now' => $now], '', 'id, shortname');
if ($showcourses) {
$this->show_courses($showcourses);
}
}
if (!empty($config->hidecourses)) {
mtrace("\n Searching for courses to hide ...");
// Ocultar los cursos cuyo enddate YA ha llegado.
$select = "visible = 1 AND enddate > 0 AND enddate <= :now";
$hidecourses = $DB->get_records_select('course', $select, ['now' => $now], '', 'id, shortname');
if ($hidecourses) {
$this->hide_courses($hidecourses);
}
}
if (!$showcourses && !$hidecourses) {
mtrace(" Nothing to do, except ponder the boundless wonders of the Universe, perhaps. wink\n");
}
mtrace(number_format((microtime(true) - $t0) / 60, 3) . ' mins');
}
Ya sólo faltaría comprimirlo todo, subirlo e instalarlo. Por si acaso, purga todas las cachés antes de probarlo
Un servidor! Si me indicas que cambiaste te lo agradecería
He conseguido hacer que funcione también teniendo en cuenta la hora, no sólo la fecha. Sólo hay que hacer unos pequeños cambios en varios archivos del plugin. Además de estos cambios es necesario asegurarse de que el cron del servidor se ejecute cada minuto, o cada pocos minutos. Si alguien lo quiere con esa mejora que me lo diga.
Is this Plugin going to be maintained in the future and compatible with current and/or future versions?
We want to see a Moodle 4.1 complaint for this very useful plugin
Thanks.
Just globally
Hello. Is there an on/off toggle at the course level that an instructor has access to, or is only possible for a site admin to adjust the on/off setting globally?
Muchas gracias por tus comentarios Tomas, podríamos entrar en contacto? mis datos son estos:
Email address
jonshez@gmail.com
Skype ID
jonshez
Feliz día
Yo simplemente lo instalé, activé las opciones de visible y oculto.
Y posteriormente ejecuto el cron automáticamente cada dos minutos. Pero no es una tarea de moodle, si no del SERVIDOR. Tienes que programar la tarea en el servidor y ya.
A mi me funciona genial.
P.D.: Intenté mandarte un mensaje privado pero no lo tienes habilitado, y creo que no es de recibo ensuciar este hilo con un tema personal
Cordial saludo Tomas y Amanda, tengo ya un mes de tener instalado el plugin y esta es la imagen que tengo en la que se informa que no se ha ejecutado.
https://drive.google.com/file/d/1lpKReHf325R7LTCprGnQ34g_NhgVKRnU/view?usp=sharing
Adicionalmente, ejecuto el cron por web y no lo actualiza, ejecuto el cron por consola linux y tampoco lo actualiza.
Pueden ayudarme con alguna orientación.
Muchas gracias
Tomas ya lo tengo configurado y puedo ponerlo a correr. Pero cuando lo ejecuto lo hace nada relacionado con \local_culcourse_visibility\task\update_course_visibility. Cuando lo ejecuto incluso no genera logs. Será que me falta algo?
Gracias
El cron es FUNDAMENTAL.
Tienes que configurarlo en tu servidor. Hay mucha información en internet.
Para ejecutarlo manualmente tienes que habilitar la opción, ponerle pass y entrar en http://su.sitio.moodle/admin/cron.php
Pero lo suyo es que se ejecute cada 2 minutos
Gracias Tomas por responder. Debo de tener algo presente para que me funcione? Yo tengo instalado Moodle 3.8.
- Lo instale normal como se instala un plugin y active las dos opciones correspondientes para inicio y final del curso.
- Pero cuando entro a verificar si el cron se ha ejecutado el sistema me dice que no se ha ejecutado.
- Puedo ejecutar manualmente el cron para validar si funciona?
Gracias
A mi si me funciona a la perfección, excepto eso de la hora, pero según comenta Amanda, es debido a que no la tiene en cuenta...
Gracias por responder. Tomas una consulta. A ti te funciona correctamente y se ejecuta con el cron el plugin?
Saludos