📖 2 minutos
En Moodle 4.5.5 el plugin Configurable Reports (Informes Configurables) muestra un error.
Si has actualizado tu Moodle a la versión 4.4, 4.5.5 o 5 y utilizas el plugin Configurable Reports (Informes Configurables) (para Moodle 5 aún no hay versión oficial pero se puede usar), es muy probable que te encuentres con este error al usar filtros como fechas o nombres:
Detectado un error de codificación, debe ser corregido por un programador:
clean() can not process arrays, please use clean_array() instead.
Este problema aparece porque, a partir de Moodle 4.4, el core ya no permite procesar arrays con la función optional_param(). Ahora se debe usar optional_param_array().
Además, este bug ya ha sido reportado oficialmente en GitHub en el issue #278 del repositorio del plugin, donde se confirma que es necesario actualizar las llamadas a optional_param para garantizar compatibilidad en Moodle 4.5. 👉 Ver issue en GitHub
1. Busca el fichero:
/blocks/configurable_reports/components/columns/userstats/plugin.class.php
⚠️ Haz una copia de seguridad del archivo original antes de editarlo. ⚠️
Yo lo que hago es duplicarlo y cambiarle el nombre, por ejemplo, a plugin.class-backup.php
2. Edita el archivo y busca estas líneas (alrededor de la línea 72):
$filterstarttime = optional_param('filter_starttime', 0, PARAM_RAW);
$filterendtime = optional_param('filter_endtime', 0, PARAM_RAW);
Sustituye esas líneas por esto:
$filterstarttime = optional_param_array('filter_starttime', [], PARAM_RAW);
$filterendtime = optional_param_array('filter_endtime', [], PARAM_RAW);
$starttime = is_array($filterstarttime) ? ($filterstarttime[0] ?? 0) : $filterstarttime;
$endtime = is_array($filterendtime) ? ($filterendtime[1] ?? 0) : $filterendtime;
3. Guarda el archivo y sube los cambios (si trabajas en local)
4. Limpia el caché
Administración del sitio > Desarrollo > Purgar todas las cachés
5. Prueba los filtros en tu informe
Haz una prueba aplicando filtros de fecha o nombres en el informe que usaba userstats. Si todo está bien, el error ya no debería aparecer.Haz una copia de seguridad del archivo original antes de editarlo.
Espero te sea de ayuda, deja tu comentario 🤗