NeoFrag Reborn se abre en GitHub. El código del CMS (NeoFragReborn/neofrag), los addons a la carta (NeoFragReborn/extensions) y el bot de Discord (NeoFragReborn/bot-discord) se publican allí con la historia de sus versiones — desde la 1.0.0 para el CMS y los addons, desde la 0.1.0 para el bot: el código de cada versión, sus notas, y los paquetes a partir de la 1.2.23.
Cambiado
- Las bases de datos indicadas son las que se prueban: cada versión se instala y pasa toda su batería de pruebas, con PHP 8.2 y 8.5, en MySQL 5.7, 8.0 y 8.4 y en MariaDB 10.5, 10.6, 10.11, 11.4 y 11.8 — la guía de instalación cita esas versiones, y ya no «5.7+» y «10.5+».
- Las guías dicen dónde encontrar el proyecto: el paquete de instalación y el archivo del bot en su página de
versiones, los addons a la carta y su catálogo en la de
extensions, el código para quien quiera contribuir. En el wiki, las referencias a un documento del repositorio (despliegue, arquitectura, herramientas) llevan a ese documento en GitHub, en lugar de conservar solo su título.
Corregido
- Los ajustes de los módulos vuelven a abrirse: la ventana «Configuración» de los módulos Foro, Reclutamiento, Noticias, Galería, Eventos, Calendario y Artículos respondía «error 500» cada vez que se abría, en todos los sitios, desde la 1.2.0: el campo «número» rechazaba un entero (su paso, y el valor leído de la base de datos) desde que el código pasó al tipado estricto.
- Equipos: la opción «Mostrar partidos jugados» se puede volver a desmarcar. Guardar los ajustes almacenaba la palabra «Array» en lugar de un sí o un no, que siempre se leía como «sí».
- Los ajustes de un autenticador nunca configurado (Google, Discord, GitHub) se abren sin escribir ocho advertencias en el registro.
- El panel y las estadísticas de un sitio sin Artículos, gestor de errores o Foro ya no escriben advertencias en el registro cada vez que se abren: las tarjetas de estos módulos solo aparecen si están instalados, y ya no se consulta ninguna tabla ausente.
- El asistente de instalación vuelve a leer la configuración que acaba de escribir: en un alojamiento cuya caché de
PHP no vuelve a comprobar los archivos, un segundo intento del paso «Base de datos» seguía leyendo el antiguo
config/db.php. - Un sitio desplegado desde git e instalado con el asistente web funciona: el asistente no escribía
config/neofrag.php(el paquete lo lleva, un clon solo tiene su plantilla), y cada página respondía «error 500» sin una sola línea en el registro. - El ejemplo
nginx.confarranca: la regla de TinyMCE, sin comillas, hacía que nginx rechazara toda la configuración («missing closing parenthesis»). Sus redirecciones ya no llevan el parámetro internorequest_url. - Los archivos subidos se sirven con Apache y PHP como módulo: la protección de
upload/usaba una directiva prohibida en un.htaccess, y toda esa carpeta — avatares, galería, mediateca — respondía «error 500». - Con Caddy, los archivos subidos que no son imágenes (un PDF de la mediateca) se sirven: el ejemplo solo servía imágenes.
/index.phplleva a la página de inicio (redirección permanente) en lugar de a una página no encontrada; y una dirección con una extensión que ninguna página sirve (/newsletter/.env, que prueban los robots) responde 404 sin escribir una anomalía en el registro.tools/check-all.phpcon PHP 8.2: cada comprobación contaba allí como un fallo, incluso cuando pasaba — el código de salida se leía una vez de más, algo que PHP solo permite desde la 8.3. Para quien contribuye con PHP 8.2.
Seguridad
- El asistente de instalación ya no se vuelve a abrir en un sitio instalado cuya base de datos no responde. Si el
bloqueo
install/db.txthabía desaparecido, un corte temporal de la base de datos volvía a abrir el asistente, cuyo paso «Base de datos» reescribeconfig/db.php: un visitante podía entonces redirigir el sitio a su propia base de datos. El sitio muestra ahora «temporalmente no disponible». Y el paso «Administrador» se niega a crear una cuenta en cuanto el sitio tiene una. - Apache solo ejecuta ya el
index.phpde la raíz: la regla de reescritura dejaba ejecutarse directamente cualquier archivoindex.phpde una subcarpeta (más de ochenta controladores internos).
Añadido
- Cuatro comprobaciones más:
check-assistantrecorre el asistente de instalación de principio a fin, como un visitante, para cada perfil (pantallas, rechazos, cuenta creada, inicio de sesión con la contraseña introducida, registro silencioso);check-reglagesabre la pantalla de ajustes de cada addon, la guarda tal cual y la vuelve a abrir;check-serveur-webprueba Apache, nginx y Caddy, con las configuraciones incluidas, colocando sondas (carpetas y archivos prohibidos, scripts que no deben ejecutarse, reescritura, cabeceras de seguridad);check-nouveau-venusigue al pie de la letra el README y la guía del colaborador en una máquina limpia. Los flujosinstallation.ymlynouveau-venu.ymllos vuelven a ejecutar cada semana. - Los comandos del README funcionan en una máquina nueva: su bloque «Desarrollar» terminaba con una batería de
pruebas que fallaba por falta de una base de pruebas; ahora remite a la guía del colaborador, que crea esa base
(
php tools/prepare-test-db.php).