← Volver a noticias
Bajo el capó: mejoras de seguridad, nuevo routing y contratos más claros

Bajo el capó: mejoras de seguridad, nuevo routing y contratos más claros

The Code Beaver

Esta versión se centra en lo que ocurre bajo la superficie: edición más segura, routing más inteligente y un flujo de trabajo de contenido más directo.

Refuerzo de seguridad

  • Escrituras atómicas de archivos — todas las operaciones de guardado JSON usan bloqueo de archivos, para que dos editores trabajando en la misma página no puedan corromper los cambios del otro.
  • Saneamiento más estricto — el sanitizador HTML detecta más esquemas URI potencialmente peligrosos y mantiene el contenido más seguro incluso al pegar desde fuentes externas.
  • Vistas previas más seguras — las previsualizaciones de medios como YouTube, SoundCloud, audio e imágenes en el editor en línea escapan ahora todas las entradas del usuario antes de renderizar.

Routing independiente del idioma

Cambiar el idioma principal del sitio ahora es una sola modificación de configuración. El sistema de routing lee SITE_LANG_DEFAULT y adapta automáticamente el manejo de URLs, tanto en producción con Apache como durante el desarrollo local. No hace falta editar .htaccess ni ningún otro archivo.

El routing de desarrollo y producción comparte el mismo mecanismo de carga de configuración, así que una URL no debería funcionar en local y fallar después en el servidor.

Auto-Write: plantillas que se conectan solas

Crear una página nueva es más sencillo. Escribes tu plantilla PHP con valores de fallback útiles, y Nibbly hace el resto. Cuando un administrador visita la página por primera vez, cada llamada a editableText(), editableImage() o editableLink() que todavía no tenga una clave JSON correspondiente la crea automáticamente usando el fallback como contenido inicial.

Así puedes concentrarte en la plantilla. El archivo JSON de contenido se rellena solo, y el Content Editor del dashboard muestra inmediatamente todos los campos. Una notificación confirma cuántos campos se generaron automáticamente.

Para páginas estándar con sections[] y para listas editables, la estructura JSON se sigue definiendo por adelantado. Pero para layouts personalizados, la plantilla suele ser suficiente.