Seguimiento detallado de todas las actualizaciones y mejoras del proyecto
aServerSide: true que causaba conflicto con datos localescorregir_utf8() a /Control/funciones.php para corregir caracteres doblemente codificados (Ã" → Ó, etc.)exportpdf que causaba error exportpdf-no-token-urlfiltrarPorLetra(letra) en JS: Filtrado dinámico de contratos por letra inicialdocs/Control/REDISENO_MODULO_CONTROL_TIPOS_2026-03-10.mdnew PDO() sin try/catch en conexion.php lanzaba Fatal Error ante cualquier fallo de conexión. Corregido con try/catch + guards isset($con) / isset($bdd).eliminar_clase_proceso.php (singular) en lugar de eliminar_clases_procesos.php (plural). El 404 caía en index.php → redirect relativo → loop infinito en Caddy.eliminar_clases_procesos.php no verificaba sesión; cualquier usuario podía eliminar registros por URL directa.AND en lugar de || permitía bypass de autenticación con sesión inválida.exit tras redirect de error; siempre ejecutaba redirect de éxito.login.php sin ../ redirigía a ruta inexistente.require_once sin try/catch; validación de descripción usaba límite incorrecto (255 en vez de 500).clases_procesos.php — gradiente header, form-card, botones personalizados, contador de caracteres, SweetAlert2, animación fadeIn.mysqli_prepare + bind_param), elimina SQL injection.funciones.php movido al bloque PHP inicial; eliminado ob_start/ob_end_flush innecesario.clase_procesos.descripcion ampliado de varchar(255) a varchar(500)./var/log/php8.3-gpa-error.log para capturar errores PHP que antes se silenciaban.docs/Correcciones/CORRECCION_CLASES_PROCESOS_2026-03-04.mdhtmlspecialchars() en todos los datosset_error_handler() silenciosodocs/Editar_Proceso_Redisenio/REDISENO_GESTIONAR_SOLICITUD_USUARIO_2026-02-26.mdJSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE en json_encode()json_last_error_msg()htmlspecialchars() con ENT_QUOTESstrip_tags() aplicado antes de htmlspecialchars()set_error_handler() para loguear sin mostrar en pantalladocs/Editar_Proceso_Redisenio/CORRECCION_GESTIONAR_SOLICITUDES_2026-02-26.mdget_row_safe() y manejo de errores para evitar fatal error cuando la tabla historial_autorizaciones no existeset_error_handler() y set_exception_handler() para silenciar errores y loguearlos sin mostrarlos en pantallahtmlspecialchars() a todos los datos mostrados en DataTabledocs/Editar_Proceso_Redisenio/REDISENO_SOLICITUDES_2026-02-26.mdeditar_proceso.phpdocs/Editar_Proceso_Redisenio/REDISENO_NUEVO_PROCESO_2026-02-24.md{$id}, {$nombre_apoderado}, etc.)background: #ffffff) para que el logo sea visible$link_proxima_audiencia con botón para unirse a la audiencialink_proxima_audiencia: En tabla procesos y formulario de edición para almacenar URL de reunión virtualcorregir_utf8(): Aplicada a nombres de demandante, demandado, apoderado y suplente para manejo correcto de caracteres especiales (María José, etc.)verificar_rate_limit_email() y registrar_envio_email() para prevenir bloqueos SMTP de Hostingersuplente en SELECT: Incluido abogado suplente en la query de edición de procesolegacy/Litigios/funciones.php - Template de email con sintaxis de string PHP y fondo blanco en headerlegacy/Litigios/ajax/editar_proceso.php - Envío de $link_proxima_audiencia a función de emaillegacy/footer.php - Aplicado corregir_utf8() a userName y userFullNamedocs/CORRECCION_EMAIL_AUDIENCIA_VARIABLES_2026-02-23.mdconsultar_proceso_rj_tiempo_real.php consulta Rama Judicial v2 cuando no hay datos localessujetos_procesales: Almacena demandante/demandado desde API v2 en proceso_rj_metadataconsultarRamaJudicialTiempoReal(): JavaScript para consultar API en tiempo realguardarDatosRamaJudicial(): Permite guardar datos de API en BD con un clicfecha_ultima_actuacion: Script Python ahora usa proc.get("fechaUltimaActuacion") directamente (antes buscaba en actuaciones[] que no existe)sujetos_procesales: Script Python ahora guarda correctamente el campo en proceso_rj_metadataobtener_actuaciones_rj.php ahora calcula la mejor fecha disponible de múltiples fuentesconsultarRamaJudicialAPIv2() en lugar de abrir URL externa0 */4 * * * a 30 1,5,9,13,17,21 * * * (horario desfasado para evitar bloqueos API)sujetos_procesales y corregido fecha_ultima_actuacion en _guardar_metadata_proceso()docs/Rama_Judicial/MEJORAS_BOTON_RJ_API_TIEMPO_REAL_2026-02-20.mddocs/INDICE_MAESTRO_DOCUMENTACION.md con sección Rama Judicialasteriscos se convierte correctamente a backticks\ se convierte a docs/CHANGELOG.mdincludes/changelog_viewer.php - Soporte para tablas Markdown, negrita, códigopages/changelog_content.php - Ruta corregida para docs/CHANGELOG.mdlegacy/Litigios/tutelas_serverside.php - Mapeo de columnas 3 y 4 corregidolegacy/Litigios/tutelas.php - Funciones Rama Judicial en scope global + 2 modales HTML.user.ini - Comentar mbstring.* y auto_detect_line_endings (deprecated)php.ini - Comentar mbstring.* y auto_detect_line_endings (deprecated)docs/CORRECCION_WARNINGS_PHP_8_3_2026-02-16.mddocs/Accion_Tutela/CORRECCION_ERROR_DATATABLES_TUTELAS_2026-02-16.mddocs/Accion_Tutela/MODAL_RAMA_JUDICIAL_TUTELAS_COMPLETO_2026-02-16.mdproceso_sync_log: Registro histórico de todos los intentos de sincronización con backoff exponencial (1d→7d→30d→90d)_registrar_sync_log(): Registra cada intento (exitoso, no_encontrado, error_api) con cálculo de próxima consulta_crear_comentario_actuacion(): Crea comentarios automáticos con user_id=0 para actuaciones nuevasUNION ALL con 3 niveles (activos con historial → activos nuevos → inactivos)id_comment → comment_id (SELECT duplicados)comment_type del INSERT en tabla commentssincronizar_rama_judicial.py - Query priorizada, sync_log, comentarios automáticos, fix columnas/opt/sincronizar_rama_judicial.sh - Límite 25→50, comentario 6h→4hdocs/Rama_Judicial/OPTIMIZACION_CRON_JOB_SYNC_LOG_2026-02-16.mdlegacy/ajax/sincronizar_proceso_rj.php - Traducción de errores técnicos a mensajes en español/opt/FTP_TUTELAS/docs/rama_judicial/rj_api_client.py - Handler 403 con retry + handler genérico 4xx/opt/FTP_TUTELAS/scripts/sincronizar_un_proceso.py - Catch RJApiError específico/opt/FTP_TUTELAS/scripts/sincronizar_rama_judicial.py - Catch RJApiError en batch con estadísticasdocs/Rama_Judicial/MEJORA_MANEJO_ERRORES_API_2026-02-16.mdid_proceso_rj cambiado de INT a BIGINT en tablas proceso_actuaciones y proceso_rj_metadata/opt/sincronizar_rama_judicial.sh mejorado con timeout de 2 horas y auto-kill de procesos zombielegacy/ajax/obtener_actuaciones_rj.php - Conversión UTC -> America/Bogota, formato 12h/opt/FTP_TUTELAS/scripts/sincronizar_un_proceso.py - Catch específico para error MySQL 1264/opt/sincronizar_rama_judicial.sh - Timeout global + auto-kill procesos anterioresdocs/Rama_Judicial/CORRECCION_ERROR_1264_BIGINT_2026-02-16.mdlegacy/Litigios/login.php - Corregida lógica de redirecciónlegacy/Litigios/exportar_tutelas_excel.php - Nueva exportación Excellegacy/Litigios/dashboard_tutelas.php - Gráficos de evolución diaria y distribución de riesgolegacy/navbar.php - Contador dinámico de tutelas en menúlegacy/head.php - SheetJS local con fallback a CDNincludes/header.php - CSP actualizada con cdn.sheetjs.comdocs/CORRECCION_FALLBACK_SHEETJS_2026-02-12.mdlegacy/funciones.php - mb_strtoupper_corregido(), nuevos patrones UTF-8legacy/Litigios/ver_tutela.php - Eliminada función duplicadalegacy/clientes.php - Eliminado utf8_encode() obsoletolegacy/Litigios/editar_proceso.php - Mejor manejo de erroreslegacy/Litigios/procesos_ss.php - Validación defensiva juzgado, consulta optimizadalegacy/pdf/documentos/ver_informe_preliminar.php - Múltiples correcciones UTF-8 y división por cerolegacy/vendor/html2pdf/locale.class.php - Fix TypeError count()legacy/gestion_talento_humano/*.php - Corregidas advertencias $_GETdocs/Gestion_TI/ - Documentos de contextodocs/Certificacion_Contractual/ - Documentos DOCXdocs/Rama_Judicial/MULTIPLES_GRUPOS_ACTUACIONES_2026-02-10.mdlegacy/ajax/obtener_actuaciones_rj.php - Soporte múltiples idConexion/opt/FTP_TUTELAS/scripts/sincronizar_rama_judicial.py - Sincronización de documentos.container estándar (1170px) para aprovechar espacio en monitores grandesproceso_actuaciones - Actuaciones sincronizadas desde API RJproceso_documentos - Metadatos de documentosurl_proceso - URL oficial de Rama Judicialestado_actual_proceso - Resumen de última actuacióndetalle_actuaciones - Tabla HTML cronológicaobservaciones - Información adicional de RJfecha_ultima_revision - Control de actualizaciónsincronizar_un_proceso.py ejecutado desde GPA/etc/caddy/Caddyfile)legalhealthmanagement.com (→ App Legacy)new.legalhealthmanagement.com (→ App Nueva)monitor.legalhealthmanagement.com (→ Portal Landing)webhook/github.php)@, www, new, monitordocs/CONFIGURACION_DOMINIO_COM_2025-01-23.md - Documentación completa del dominio .com| Dominio | Aplicación | Root | Log |
|---|---|---|---|
| legalhealthmanagement.net | Legacy | /var/www/gpa/legacy | legalhealthmanagement.log |
| legalhealthmanagement.com | Legacy | /var/www/gpa/legacy | legalhealthmanagement-com.log |
| new.legalhealthmanagement.net | Nueva App | /var/www/gpa/legalhealthmanagement | new-legalhealthmanagement.log |
| new.legalhealthmanagement.com | Nueva App | /var/www/gpa/legalhealthmanagement | new-legalhealthmanagement-com.log |
| monitor.legalhealthmanagement.net | Portal | /var/www/gpa | monitor-legalhealthmanagement.log |
| monitor.legalhealthmanagement.com | Portal | /var/www/gpa | monitor-legalhealthmanagement-com.log |
datetime-local para selección visual de fecha y horalegacy/cambio_masivo_fechas.phpdatetime-local para fecha/horalegacy/ajax/procesar_cambio_masivo_fechas.phpcheckdate()legacy/navbar.phplegacy/menu_gestion_requerimientos_vigencia.php/usr/bin/node/root/docs/14-scripts-gpalegacy/cambio_masivo_fechas.php - Interfaz de cambio masivolegacy/ajax/procesar_cambio_masivo_fechas.php - API de procesamientodocs/Correcciones/CONFIGURACION_WEBHOOK_AUTODEPLOY_2025-01-17.md - Documentación del webhook/root/docs/14-scripts-gpa/ con comandos SystemDauditoria_cambios_solicitudes para registro de cambioslegacy/gestionar_solicitudes.phpmodalCambiarFecha(), cargarAuditoria(), procesarCambioFecha()legacy/ajax/cambiar_fecha_creacion_solicitud.php - API para cambiar fecha con auditoríalegacy/ajax/obtener_auditoria_solicitud.php - API para consultar historial de cambiosdocs/Correcciones/SISTEMA_AUDITORIA_CAMBIO_FECHA_SOLICITUD_2025-12-19.md - Documentación completacorregir_utf8() a todos los textos en notificaciones (títulos, contenido, nombres de usuarios)fetch.php, navbar.php y footer.php en Litigios, Comercial, Control y legacycorregir_utf8() en todos los puntos de salida de datoslegacy/funciones.phpdocs/Mejoras/MEJORAS_NOTIFICACIONES_2025-12-19.mdlegacy/litigios.phpconceptos_firma.php pero mejoradolegacy/modal/editar_usuarios.phpselectpicker show-tick y atributos data-show-subtext="true" data-live-search="true"consulta.php)legacy/consulta.phpacceso_cliente en la tabla users no podían ver ni gestionar esos clientes en la página de consultaacceso_cliente además de los asignados directamente en campos de la tabla clientesOR id_cliente IN (SELECT acceso_cliente FROM users WHERE user_id = $user_id AND acceso_cliente IS NOT NULL)corregir_utf8() a nombres de clientes para solucionar problemas de codificaciónlegacy/modal/editar_usuarios.php, legacy/usuarios.php, legacy/consulta.phpcorregir_utf8() a nombres y apellidos de apoderadoslegacy/procesos.php (líneas 311-314)legacy/diagnostico_litigios.phpcdn_config.phpLitigios/procesos_ss_litigios.phpdocs/CAMBIOS_SISTEMA_PERMISOS_USUARIOS_2025-10-25.md con detalle técnico completo de todas las versioneslegacy/litigios.phperror_litigios.log?debug=1)legacy/menu.php para que "Gestión de Litigios" apunte al nuevo sistemaprocesos.php?filtro= → litigios.php?filtro=docs/CAMBIOS_SISTEMA_PERMISOS_USUARIOS_2025-10-25.md con detalle técnico completo del problema, solución implementada, impacto y pruebas recomendadaslegacy/importar_tutelas.phpaccion=importar.accion=importar antes de hacer form.submit(), garantizando que el backend ejecute la rama de importación real.docs/CORRECCION_IMPORTAR_TUTELAS_2025-11-17.md con el detalle técnico del problema, causa raíz, solución y pasos para probar el flujo completo.consulta.marduk.pro y analisis.marduk.pro?embedded=true para modo de embeddingCONFIGURACION_EMBEDDING_AGENTES_IA_2025-10-26.mdagenteshttps://consulta.marduk.pro/embedded=true → https://consulta.marduk.pro/?embedded=truehttps://analisis.marduk.pro/embedded=true → https://analisis.marduk.pro/?embedded=trueframe-src 'self' https: → frame-src *; frame-ancestors *header_down -X-Frame-Options para eliminar headers conflictivos de Next.jsX-Frame-Options: ALLOWALLlegacy/IA/ a legacy/ia_validacion_modelos.php → legacy/ia_validacion_modelos.php
* ia_analisis_tutelas.php → legacy/ia_analisis_tutelas.php
* ia_dashboard.php → legacy/ia_dashboard.php
* verificar_agentes.php → legacy/ia_verificar_agentes.php
* test_agentes.php → legacy/ia_test_agentes.php
base.php del servidorERR_TOO_MANY_REDIRECTS
* Sin errores de menu_slider.php
* Rutas más simples (sin ../)
* Navbar y footer se muestran correctamente
* Mejor rendimiento
* Codificación UTF-8 correcta (sin caracteres extraños)
include("../head.php") → include("head.php")header("location: ../login.php") → header("location: login.php")require_once('IAProvider.php') → require_once('IA/IAProvider.php')fetch('validar_proveedor.php') → fetch('IA/validar_proveedor.php')legacy/navbar.php - Actualizadas URLs del módulo de IAIA/ia_*.php → ia_*.phpdocs/MIGRACION_IA_A_RAIZ_2025-10-24.md - Guía completa de migracióndocs/EXPLICACION_ERROR_MENU_SLIDER_2025-10-24.md - Explicación del problema de redireccioneslegacy/IA/MIGRACION_IA_A_RAIZ_2025-10-24.md - Copia en carpeta IAlegacy/IA/EXPLICACION_ERROR_MENU_SLIDER_2025-10-24.md - Copia en carpeta IAlegacy/IA/base_ia.php - Ya no es necesariolegacy/IA/ia_validacion_modelos.php - Movido a legacy/legacy/IA/ia_analisis_tutelas.php - Movido a legacy/legacy/IA/ia_dashboard.php - Movido a legacy/legacy/legacy/IA/ia_validacion_modelos.php - Actualizado a estructura de base.php
* legacy/IA/ia_analisis_tutelas.php - Actualizado a estructura de base.php
* legacy/IA/ia_dashboard.php - Actualizado a estructura de base.php
include("../Control/head.php") por include("../head.php")
* Reemplazado include("../Control/footer.php") por include("../footer.php")
* Eliminado require_once("../config/cdn_config.php") duplicado (ya está en head.php)
* Cambiado contenedor de a
* Agregada estructura de panel:
* Agregado con botones de acción
* Agregado para contenido
* Agregado espaciado
antes del footer
* Eliminados scripts duplicados de SweetAlert2 y Chart.js
- Beneficios:
* Consistencia visual en todo el sistema
* Mantenimiento centralizado de librerías
* Eliminación de código duplicado
* Estandarización de versiones de librerías
* Estructura HTML uniforme
Agregado
- Plantilla Base para Desarrollo
legacy/IA/base_ia.php - Plantilla simplificada para nuevas páginas del módulo IA (47 líneas)
* Estructura completa siguiendo base.php
* Sin botones forzados en panel-heading
* Control de acceso por roles
* Validación de sesión
* Lista para agregar contenido personalizado
Documentación
- Documentación de corrección de UI
docs/CORRECCION_NAVBAR_FOOTER_IA_2025-10-24.md - Documentación completa de la corrección
* Descripción del problema y causa raíz
* Detalles de la solución implementada
* Archivos modificados con diff de cambios
* Instrucciones de despliegue
* Checklist de verificación
docs/GUIA_PLANTILLA_BASE_DESARROLLO_2025-10-24.md - Guía completa de desarrollo
* Estructura estándar de páginas
* Guía paso a paso de uso de plantilla
* Ejemplos prácticos
* Mejores prácticas
* Checklist de desarrollo
* Solución de problemas comunes
docs/ARCHIVOS_SUBIR_CORRECCION_NAVBAR_IA_2025-10-24.md - Instrucciones de despliegue
* Lista de archivos a subir
* Comandos de despliegue (SCP, FTP, Git)
* Checklist de verificación post-despliegue
- Actualizado
docs/CHANGELOG.md - Nueva versión 0.3.7
- Actualizado
legacy/IA/README.md - Versión 1.0.1 con historial
---
0.3.6 2025-10-23
Corregido
- Soporte para Modelos GPT-5 (gpt-5-nano, o3, o1)
- Corregido error "Unsupported parameter: 'max_tokens'" en modelos GPT-5
- Implementada detección automática de modelos GPT-5/o3/o1 en
legacy/IA/IAProvider.php
- Uso de
max_completion_tokens en lugar de max_tokens para modelos de razonamiento
- Omisión de parámetro
temperature en modelos GPT-5 (no soportado)
- Mantenida compatibilidad hacia atrás con GPT-4 y modelos anteriores
- Archivo modificado:
legacy/IA/IAProvider.php (líneas 222-280)
Agregado
- Script SQL:
docs/Tablas-Vistas-BD/UPDATE_GPT5_CONFIG.sql
- Actualización de configuración para modelos GPT-5
- Configuración de
max_completion_tokens en lugar de max_tokens
- Marcado de modelos que no soportan
temperature
- Documentación:
docs/CORRECCION_GPT5_PARAMETROS_2025-10-23.md
- Documentación completa del problema y solución
- Referencias a documentación oficial de OpenAI
- Guía de límites de tokens por modelo
---
0.3.5 2025-10-23
Corregido
- Sistema de IA y Analítica - Análisis de Tutelas
- Corregido error de método privado inaccesible en
legacy/IA/IAProvider.php
* Cambio de visibilidad de private a public en método obtenerModelo() (línea 307)
- Corregidos errores de columnas inexistentes en base de datos
* legacy/IA/analizar_tutelas.php - Función obtenerBarreras() (líneas 322-334)
- Corregido ORDER BY: total_casos → cantidad
* legacy/IA/analizar_tutelas.php - Función construirPrompt() (líneas 172-190)
- Corregido nombre de columna: tipo_barrera → barrera
- Corregido nombre de columna: total_casos → cantidad
- Corregido nombre de columna: departamento → departamento_demandante
- Agregado operador null coalescing ?? para evitar errores de índice indefinido
- Corregido error de codificación UTF-8 en
legacy/IA/IAProvider.php
* Agregada función limpiarUTF8() para sanitizar strings (líneas 263-276)
* Aplicada limpieza en enviarPromptDeepSeek() antes de json_encode
* Aplicada limpieza en enviarPromptOpenAI() antes de json_encode
* Agregado flag JSON_UNESCAPED_UNICODE en todas las llamadas a json_encode
- Corregidos errores en tabla
ia_registro_uso en legacy/IA/IAProvider.php
* Función registrarUso() (líneas 396-432)
- Corregido nombre de columna: tipo_operacion → tipo_peticion
- Corregido nombre de columna: tokens_usados → tokens_totales
- Corregido tipo de dato: exitoso INT → estado VARCHAR
- Corregido valor: $exitoso_int (0/1) → $estado ('exitoso'/'fallido')
- Corregido binding: "iisii" → "iisis"
- Agregado try-catch para manejo robusto de errores
- Agregadas validaciones de prepared statements
* Función obtenerEstadisticas() (líneas 433-451)
- Corregido: exitoso = 1 → estado = 'exitoso'
- Corregido: tokens_usados → tokens_totales (2 ocurrencias)
Agregado
- Scripts de diagnóstico para debugging
legacy/IA/test_check_api_key.php - Verificación de configuración de claves API
legacy/IA/test_curl_debug.php - Prueba directa de cURL a DeepSeek API
legacy/IA/test_api_direct.php - Prueba de análisis sin AJAX
- Nota: Estos archivos deben ser removidos o restringidos en producción
Documentación
- Documentación completa de correcciones
docs/CORRECCION_SISTEMA_IA_TUTELAS_2025-10-23.md - Resumen ejecutivo de correcciones
docs/CAMBIOS_TECNICOS_IA_TUTELAS_2025-10-23.md - Detalles técnicos de cambios
docs/LECCIONES_APRENDIDAS_IA_2025-10-23.md - Lecciones aprendidas del proceso
- Actualizado
legacy/IA/RESUMEN_IMPLEMENTACION.md con sección de correcciones
Resultados
- ✅ Sistema de análisis de tutelas 100% funcional
- ✅ Validación de modelos operativa (OpenAI y DeepSeek)
- ✅ Análisis exitosos con métricas:
* Tokens promedio: 1,502
* Tiempo promedio: 34.3 segundos
* Costo promedio: $0.000023 por análisis
* Tasa de éxito: 100%
0.3.4 2025-10-10
Cambiado
- Actualización de enlace de expediente en menú de gestión
- Modificado
legacy/menu_gestion_requerimientos_vigencia.php
* Botón "Ver Expediente" ahora redirige a formulario_requerimientos.php?id=X
* Anteriormente redirigía a expediente_digitalizado_solicitudes.php?id_empleador=X&id=Y
* Agregado atributo target="_blank" para abrir en nueva pestaña
* Mejora la experiencia de usuario con la nueva versión del formulario de requerimientos
Corregido
- Error JavaScript en menú de gestión de requerimientos
- Corregido error "Uncaught ReferenceError: informe_gestion is not defined" en
legacy/menu_gestion_requerimientos_vigencia.php
* Movidas funciones comentar_solicitud(), informe_gestion() y mensaje() fuera del scope de $(document).ready()
* Las funciones ahora son globales y accesibles desde atributos onclick en el HTML
* Reorganizado código JavaScript para mejor mantenibilidad
- Errores en expediente digitalizado de solicitudes
- Corregidos warnings en
legacy/expediente_digitalizado_solicitudes.php
* Agregada validación con is_dir() antes de scandir() para verificar existencia del directorio
* Uso de operador @ para suprimir warnings de permisos
* Validación de resultado de scandir() antes de procesar archivos
* Inicialización de $archivos como array vacío por defecto
* Agregado mensaje informativo cuando no hay archivos en el expediente
* Corregido error "count(): Parameter must be an array or an object that implements Countable"
- Sistema de navegación contextual en gestión de requerimientos
- Corregido error "Undefined index: anio" en
legacy/editar_solicitud_usuario.php
* Agregada validación con isset() para parámetro $anio (línea 22)
* Agregado valor por defecto date('Y') cuando no se proporciona
- Corregido error "Undefined index: url_proceso" en
legacy/gestionar_solicitud_usuario.php
* Agregada validación con isset() y empty() para campo url_proceso (línea 76)
- Implementado sistema de navegación contextual con parámetro
from_gestion
* Modificado legacy/menu_gestion_requerimientos_vigencia.php
- Agregado parámetro from_gestion=1 a enlaces de "Gestionar" y "Editar"
* Modificado legacy/editar_solicitud_usuario.php
- Agregada detección de origen con parámetro from_gestion
- Botón "Regresar" redirige a menu_gestion_requerimientos_vigencia.php cuando viene de gestión
- Actualizado formulario para pasar parámetro from_gestion al script AJAX
* Modificado legacy/gestionar_solicitud_usuario.php
- Agregada detección de origen con parámetro from_gestion
- Botón "Regresar" redirige a menu_gestion_requerimientos_vigencia.php cuando viene de gestión
- Actualizado formulario para pasar parámetro from_gestion al script AJAX
* Modificado legacy/ajax/editar_solicitud_usuario.php
- Agregada lógica de redirección condicional según origen
- Redirige a menu_gestion_requerimientos_vigencia.php cuando from_gestion=1
- Mantiene redirección original a solicitudes.php en otros casos
* Modificado legacy/ajax/editar_gestion_solicitud_usuario.php
- Agregada lógica de redirección condicional según origen
- Redirige a menu_gestion_requerimientos_vigencia.php cuando from_gestion=1
- Mantiene redirección original a gestionar_solicitudes.php en otros casos
- El menú de gestión de requerimientos (
menu_gestion_requerimientos_vigencia.php) ahora funciona como hub central
* Los usuarios regresan correctamente al menú después de editar o gestionar requerimientos
* La navegación se mantiene consistente tanto en visualización como después de actualizaciones
0.3.3 2025-10-09
Corregido
- Migración de HTML2PDF a TCPDF 6.x en módulo Legacy
- Actualizado
legacy/pdf/documentos/ver_informe_gestion_requerimiento.php
* Migrado de HTML2PDF a TCPDF 6.x para resolver errores de compatibilidad con PHP 7.4+
* Agregado manejo correcto de buffers de salida (ob_start() / ob_end_clean())
* Deshabilitados errores de PHP antes de generar PDF
* Eliminadas salidas con echo antes de generar PDF
* Agregado manejo de errores con error_log() y redirección
* Limpieza de etiquetas específicas de HTML2PDF (, , etc.)
* Creado backup: ver_informe_gestion_requerimiento_OLD_HTML2PDF.php
* Implementada clase personalizada MYPDF con header y footer institucionales
* Configurados márgenes apropiados (top: 45mm, bottom: 30mm) para header/footer
- Mejorado diseño visual de
legacy/pdf/documentos/res/ver_informe_gestion_requerimiento_html.php
* Aplicado mismo estilo profesional del informe de Litigios
* Implementadas tablas con clase .data-table con bordes y colores corporativos
* Campos de datos con .label-field (fondo gris) y .value-field (fondo blanco)
* Encabezados de sección con .section-title (fondo azul oscuro #2c3e50)
* Valores importantes destacados con .value-important (negrita)
* Indicadores de estado con colores semánticos (verde, naranja, rojo, azul)
* Mejorada presentación de días de vencimiento con colores condicionales
* Simplificada sección de firma del gestor
* Eliminado uso de utf8_encode() (deprecated en PHP 8.2)
- Solución basada en el mismo patrón aplicado exitosamente en:
* legacy/Litigios/pdf/documentos/ver_informe_litigio.php
* Documentado en docs/FIX_TCPDF_ERROR_INFORME_LITIGIO.md
* Documentado en docs/FIX_TCPDF_ERROR_INFORME_GESTION_REQUERIMIENTO.md
* Documentado en docs/ACTUALIZACION_TCPDF_COMPLETADA.md
- Manejo de errores en consultas SQL y acceso a archivos
- Mejorada función
get_row() en legacy/funciones.php
* Agregada validación de errores en consultas SQL
* Registro de errores en log cuando la consulta falla
* Retorna cadena vacía en caso de error en lugar de generar warnings
- Corregido manejo de directorios en
legacy/solicitudes.php
* Agregada verificación is_dir() antes de scandir()
* Uso de operador @ para suprimir warnings de permisos
* Validación de resultado de scandir() antes de procesar archivos
- Módulo Comercial - Errores de conexión y validación
- Corregido error de conexión a base de datos en
legacy/Comercial/config/conexion.php
* Cambió mysqli_error($con) por mysqli_connect_error() para manejo correcto de errores
* Actualizada conexión PDO para usar constantes en lugar de valores hardcodeados
- Actualizado
legacy/Comercial/config/db.php
* Cambió DB_HOST de 'localhost' a '190.8.178.74' (servidor remoto)
* Agregada verificación if (!defined()) para evitar redefinición de constantes
- Corregidos errores "Undefined index" en archivos del módulo Comercial:
* legacy/Comercial/menu_consulta.php: Validación de $_GET['filtro']
* legacy/Comercial/clientes_ss.php: Validación de $_GET['filtro'] y $_GET['id']
* legacy/Comercial/clientes_bd.php: Validación de $_GET['filtro'] y $_GET['id']
* legacy/Comercial/menu_consulta_old.php: Validación de $_GET['filtro']
* legacy/Comercial/editar_cliente.php: Validación de $_GET['origen'] y $row['url_proceso']
- Corregidos errores "Undefined index" en archivos del módulo Legacy principal:
* legacy/menu_requerimientos_vigencia.php: Validación de $_GET['filtro'] y $_GET['anio']
* legacy/solicitudes.php: Validación de $_GET['filtro'] y $_GET['anio']
* legacy/meses_vigencia_dashboard.php: Validación de $_GET['filtro'] y $_GET['anio']
* legacy/evaluar_solicitud_usuario.php: Validación de $_GET['id'] y $_GET['anio']
* legacy/expediente_digitalizado_solicitudes.php: Validación de $_GET['id_empleador'], $_GET['anio'] y $_GET['id']
* legacy/gestionar_solicitud_usuario.php: Validación de $_GET['id'], $_GET['anio'] y $_GET['mes']
- Eliminadas inclusiones duplicadas de archivos de configuración
* Removidas líneas duplicadas de include('config/db.php') y include('config/conexion.php')
* Agregados comentarios explicativos sobre la inclusión de constantes
0.3.2 2025-10-07
Añadido
- Sistema de Encuesta NPS (Net Promoter Score) para medir satisfacción del usuario
- Tabla de base de datos
encuesta_nps con campos completos de auditoría
- Script SQL completo:
legacy/sql/crear_tabla_encuesta_nps.sql
* Tabla principal con índices optimizados
* Vistas para análisis: vista_analisis_nps y vista_nps_score
* Procedimientos almacenados: sp_debe_mostrar_encuesta_nps y sp_guardar_respuesta_nps
- Endpoint AJAX:
legacy/guardar_encuesta_nps.php
* Validación de datos (puntuación 0-10)
* Categorización automática (Detractor/Pasivo/Promotor)
* Respuestas JSON con mensajes personalizados
- Funciones de verificación:
legacy/verificar_encuesta_nps.php
* debe_mostrar_encuesta_nps(): Lógica de cada 3 meses
* obtener_estadisticas_nps_usuario(): Estadísticas por usuario
* obtener_nps_score(): Cálculo de NPS Score general
- Interfaz de usuario en
legacy/footer.php
* Encuesta con escala visual de 0-10 con colores (rojo/amarillo/verde)
* Campo opcional para comentarios
* Validación de selección obligatoria
* Efectos hover y selección visual
* Integración con SweetAlert2
* Se muestra cada 3 meses hasta que el usuario responda
* Persistente entre sesiones
- Documentación completa:
docs/implementacion_encuesta_nps.md
* Explicación del sistema NPS
* Estructura de base de datos
* Flujo de funcionamiento con diagramas
* Consultas útiles para análisis
* Guía de configuración y mantenimiento
- Página de visualización de resultados:
legacy/resultados_nps.php
* Dashboard con NPS Score general y por períodos
* Distribución visual de Promotores/Pasivos/Detractores
* Tabla interactiva con todas las respuestas (DataTables)
* Gráficos de barras de progreso con colores por categoría
* Filtros por período (General, Año, Trimestre, Mes)
* Botón de exportación a Excel
- Script de exportación:
legacy/exportar_nps.php
* Exporta resultados completos a formato Excel
* Incluye resumen general con estadísticas
* Detalle de todas las respuestas
* Distribución por mes
* Solo accesible para administradores
- Integración en navbar: Agregado enlace "Resultados Encuesta NPS" en menú Control
* Visible en ambas secciones de Control del navbar
* Icono de gráfico de barras (fa-bar-chart)
* Accesible según permisos de usuario
- Documentación completa de la implementación del mensaje de bienvenida en
docs/implementacion_mensaje_bienvenida.md
- Explicación detallada del flujo de funcionamiento
- Ejemplos de implementación con diferentes librerías (SweetAlert, SweetAlert2, Toastr)
- Sistema genérico de notificaciones reutilizable
- Guía de depuración y solución de problemas
- Archivo de configuración personalizada de CKEditor:
legacy/js/ckeditor_custom_config.js
- Sistema robusto de supresión de advertencias con 5 métodos diferentes
- Compatible con todos los navegadores modernos
- No afecta la funcionalidad de CKEditor
- Documentación completa sobre supresión de advertencias en
docs/suprimir_advertencias_ckeditor.md
- Explicación de los 5 métodos de supresión implementados
- Guía de verificación y solución de problemas
- Comparación de versiones de CKEditor
- Página de prueba actualizada:
legacy/test_ckeditor_version.php
- Verificación automática de la versión de CKEditor
- Checklist interactivo de verificación
- Consola de mensajes detallados
- Editor de prueba funcional
Corregido
- Solucionado error "Undefined index: alert" en
legacy/consulta.php línea 77
- Se agregó validación con
isset() antes de acceder a $_GET['alert']
- Se agregó verificación de
null antes de usar la variable en condicionales
- Solucionado error "Undefined index: alert" en
legacy/informes.php línea 147
- Se agregó validación con
isset() antes de acceder a $_GET['alert']
- Se envolvió el switch en un condicional
if ($alert !== null) para evitar procesamiento cuando no hay alerta
- Solucionado error "Variable $filtro no está definida" en
legacy/menu.php línea 19
- Se reorganizó el código para definir
$filtro antes de validarla
- Se agregó validación con
isset() para $_GET['filtro']
- Solucionado error "Undefined index: url_informe_ejecutivo" en
legacy/informes.php línea 445
- Se agregaron validaciones con
isset() para los campos: url_informe_ejecutivo, url_informe, archivo_informe, fecha_fin y created_at
- Se establecieron valores por defecto vacíos cuando los campos no existen
- Se agregó manejo de valores nulos mostrando 'N/A' cuando corresponde
- Corregido formato de fechas en columna 'Periodo' de
legacy/informes.php
- Los nombres de meses ahora se muestran en español (antes aparecían en inglés)
- Reemplazado
strftime() (deprecado) por función personalizada formatear_fecha_es()
- Implementado array de traducción de meses en español
- Formato: "Enero de 2025", "Febrero de 2025", etc.
- Actualizado sistema de formateo de fechas en
legacy/funciones.php
- Reemplazado
strftime() (deprecado en PHP 8.1) por implementación nativa
- Creada función
obtenerMesesEspanol() para traducción consistente
- Actualizada función
formatearFecha() para usar array de meses en español
- Eliminada dependencia de
setlocale() que causaba problemas en diferentes servidores
- Formato consistente en todo el sistema: "01 de Enero de 2025"
- Solucionado error "Undefined index: user_id" en
legacy/classes/Login.php línea 131
- Agregada validación
isset() antes de acceder a $_SESSION['user_id'] en función doLogout()
- El error ocurría al hacer logout cuando la sesión ya estaba vacía
- Ahora se verifica que el índice existe antes de registrar la salida
- Solucionado error "Undefined variable: conexion" en
legacy/footer.php línea 39
- El archivo
config/conexion.php define $con (mysqli) y $bdd (PDO), no $conexion
- Actualizado
footer.php para usar $con en lugar de $conexion
- Agregadas validaciones para verificar que la conexión existe antes de usarla
- Actualizado
resultados_nps.php para usar $con
- Actualizado
guardar_encuesta_nps.php para usar $con
- Actualizado
exportar_nps.php para usar $con
- El error ocurría en páginas que no incluían previamente la conexión a la base de datos
- Corregido error de JSON inválido en
legacy/guardar_encuesta_nps.php
- El archivo
config/conexion.php usa die() que imprime texto antes del JSON
- Cambiado a crear conexión manualmente usando
config/db.php
- Headers JSON se configuran ANTES de cualquier output
- Manejo de errores de conexión devuelve JSON válido
- Creado archivo de prueba
legacy/test_nps_connection.php para verificar tabla
- Creado archivo de prueba
legacy/test_guardar_nps.php para simular guardado
- Corregido problema de validación en encuesta NPS en
legacy/footer.php
- Variable
selectedScore movida fuera del scope de didOpen para acceso global
- Simplificada validación en
preConfirm para usar directamente la variable
- Eliminado código innecesario de
dataset.selectedScore
- Ahora la validación funciona correctamente al enviar la respuesta
- Actualizado exportador NPS para generar archivos Excel en
legacy/exportar_nps.php
- Cambiado a formato XML SpreadsheetML (compatible con Excel)
- Creadas 3 hojas: Resumen, Detalle Respuestas, Distribución Mensual
- Aplicados estilos profesionales con colores por categoría (Promotor/Pasivo/Detractor)
- Encabezados con fondo verde (#4CAF50) y texto blanco
- Estilos definidos en XML para colores de fondo por categoría
- Nombre de archivo:
Resultados_NPS_YYYY-MM-DD_HH-MM-SS.xls
- Solución sin dependencias externas, usando XML nativo de Excel
Seguridad
- Configuración de CKEditor 4.22.1 (última versión estable gratuita)
- Se mantiene la versión 4.22.1 como última versión gratuita estable
- Implementado sistema de supresión de advertencias de versión
- Creado archivo
legacy/js/ckeditor_custom_config.js con múltiples métodos de supresión:
* Interceptación de console.warn para filtrar advertencias de versión
* Remoción automática de elementos de advertencia del DOM
* Configuración de versionCheck: false en CKEditor
* Interceptación del sistema de notificaciones de CKEditor
* Observador de mutaciones para remover advertencias dinámicas
- Actualizado
legacy/footer.php para cargar la configuración personalizada
- Elimina completamente los mensajes: "This CKEditor version is not secure"
Mejorado
- Robustez del código al manejar parámetros GET opcionales
- Prevención de errores Notice y Warning en producción
- Manejo de datos faltantes en consultas de base de datos
- Documentación del sistema de notificaciones existente
- Seguridad del editor WYSIWYG utilizado en formularios de informes
0.3.1 2025-04-30
Añadido
- Documentación detallada de la tabla 'solicitudes' en
docs/estructura_bd_solicitudes.md
- Actualización de la documentación general de la base de datos para incluir la tabla 'solicitudes'
- Modernización completa de la interfaz de gestión de requerimientos en
legacy/menu_gestion_requerimientos_vigencia.php
- Sistema avanzado de filtrado para requerimientos con múltiples criterios:
- Filtrado por año, estado, rango de fechas y texto
- Búsqueda en tiempo real con DataTables
- Exportación de datos a Excel, PDF e impresión
Mejorado
- Interfaz de usuario de la gestión de requerimientos con diseño moderno y responsivo
- Experiencia de usuario con efectos visuales y transiciones suaves
- Organización visual de la información con tarjetas y tablas interactivas
- Documentación de la estructura de la base de datos con detalles específicos de la tabla 'solicitudes'
- Funcionalidad de búsqueda y filtrado en la gestión de requerimientos
Detalles Técnicos
- Se implementó un sistema de filtrado avanzado que permite buscar requerimientos por múltiples criterios
- Se integró DataTables para proporcionar funcionalidades avanzadas de ordenamiento, paginación y búsqueda
- Se diseñó una interfaz moderna con tarjetas, efectos hover y transiciones suaves
- Se documentó en detalle la estructura de la tabla 'solicitudes', incluyendo campos, relaciones y uso en el sistema
- Se actualizó la documentación general de la base de datos para incluir referencias a la tabla 'solicitudes'
0.3.0 2025-04-29
Añadido
- Implementación de contenedor de páginas en
legacy/space_usuarios.php con sistema de embebido mediante iframe
- Estilos específicos para garantizar la correcta visualización del navbar en diferentes dispositivos
- Scripts JavaScript optimizados para la gestión responsiva del menú en dispositivos móviles y escritorio
Corregido
- Problema de visualización del navbar en páginas con contenido embebido mediante iframe
- Conflicto de estilos entre el navbar y el contenido embebido que causaba problemas de visualización
- Comportamiento inconsistente del menú desplegable en dispositivos móviles
Mejorado
- Estructura de contenedor en
legacy/space_usuarios.php con diseño responsive que se adapta a diferentes tamaños de pantalla
- Sistema de ajuste automático de altura del iframe para aprovechar el espacio disponible en pantalla
- Optimización del navbar para visualización en una sola línea en dispositivos de escritorio
- Gestión mejorada del botón hamburguesa en dispositivos móviles para evitar comportamientos inesperados
- Experiencia de usuario al navegar entre diferentes secciones del sistema mediante contenido embebido
Detalles Técnicos
- Se implementó un sistema de contenedor mediante iframe en
legacy/space_usuarios.php que permite cargar dinámicamente el contenido de formulario_usuarios.php manteniendo el navbar y footer consistentes
- Se desarrollaron estilos CSS específicos para garantizar que el navbar se muestre correctamente en todas las resoluciones, con ajustes particulares para dispositivos móviles y escritorio
- Se implementaron funciones JavaScript para optimizar la visualización del navbar:
adjustIframeHeight(), ensureMobileMenuCollapsed(), optimizeNavbarForDesktop() y setupMobileNavbar()
- Se corrigió el problema de visualización del navbar mediante selectores CSS altamente específicos y la aplicación de estilos inline para garantizar la consistencia visual
- Se mejoró la experiencia de usuario al implementar un sistema que ajusta automáticamente la altura del iframe según el espacio disponible en pantalla
0.2.9 2025-04-26
Añadido
- Documentación completa de la estructura de la base de datos en
docs/estructura_bd_*.sql
- Archivo de documentación general en
docs/estructura_bd_documentacion.md
- README específico para la documentación de la base de datos en
docs/README_estructura_bd.md
- Estructura SQL dividida en 5 partes para facilitar su comprensión:
- Parte 1: Usuarios y Clientes
- Parte 2: Procesos Jurídicos
- Parte 3: Gestiones, Documentos y Tareas
- Parte 4: Informes, Conceptos y Otras Entidades
- Parte 5: Inteligencia Artificial y Vistas
Documentado
- Relaciones entre tablas y estructura general de la base de datos
- Grupos funcionales de tablas (12 grupos principales)
- Consideraciones para ajustes futuros en la base de datos
- Estructura común para los sistemas 'legacy' y 'legalhealthmanagement'
Mejorado
- Organización de la documentación técnica del proyecto
- Preparación para futuros ajustes en la base de datos
- Comprensión de la estructura de datos para el desarrollo de nuevas funcionalidades
0.2.8 2025-04-26
Añadido
- Archivo de configuración centralizada para CDNs en
legacy/config/cdn_config.php
- Actualización del archivo
.htaccess en el directorio legacy para mejorar la compatibilidad
- Comentarios detallados en los archivos refactorizados para mejor mantenimiento
Corregido
- Errores 404 en recursos de CSS y JavaScript en
legacy/consulta.php
- Reemplazo de referencias locales a librerías por CDNs actualizados:
- Font Awesome 4.7.0
- AdminLTE 2.4.18
- Ionicons 2.0.1
- Chart.js 2.9.4
- SweetAlert2 11.7.32
Mejorado
- Refactorización de
legacy/head.php con sistema centralizado de CDNs
- Refactorización de
legacy/footer.php con sistema centralizado de CDNs
- Comentarios y documentación en el código para facilitar el mantenimiento
- Configuración de
.htaccess para asegurar la correcta ejecución de archivos PHP
- Estructura del código con mejor organización y separación de responsabilidades
0.2.7 2025-04-26
Añadido
- Propuesta de mejora para hooks globales de Git en
docs/propuesta-mejora-hooks-globales.md
- Implementación de ejemplo de hook global mejorado en
hooks/pre-push-mejorado
- Archivo de configuración
.githooksrc para el proyecto GPA
- Script de instalación para hooks globales mejorados en
hooks/install-global-hooks.sh
Mejorado
- Sistema de hooks globales con detección automática de tipo de proyecto
- Configurabilidad de hooks mediante archivo
.githooksrc
- Adaptabilidad a diferentes tipos de proyectos (PHP, Python, JavaScript)
- Distinción entre repositorios públicos y privados
- Interacción inteligente con hooks locales
0.2.6 2025-04-26
Añadido
- Documentación detallada sobre hooks globales de Git en
docs/hooks-globales.md
- Análisis de la interacción entre hooks globales y hooks específicos del proyecto
- Información sobre la configuración actual de hooks globales en el sistema
- Recomendaciones para el uso de hooks en diferentes tipos de proyectos
Mejorado
- Documentación sobre cómo los hooks del proyecto coexisten con hooks globales
- Explicación de posibles conflictos y soluciones implementadas
- Clarificación sobre cuándo usar la opción
--no-verify en diferentes contextos
0.2.5 2025-04-25
Añadido
- Documentación detallada sobre el hook de pre-push en
docs/git-hooks-guide.md
- Scripts para instalar y configurar hooks de Git:
hooks/pre-push: Implementación del hook de pre-push
hooks/install-hooks.bat: Script de instalación para Windows
hooks/install-hooks.sh: Script de instalación para macOS/Linux
- Guía paso a paso para implementar hooks desde cero en diferentes sistemas operativos
- Documentación sobre solución de problemas comunes con hooks de Git
Mejorado
- Flujo de trabajo de desarrollo con validaciones automatizadas
- Documentación sobre las validaciones realizadas por el hook de pre-push
- Instrucciones para omitir las validaciones cuando sea necesario
0.2.4 2025-04-25
Añadido
- Scripts para automatizar el proceso de commit y push:
commit-simple.ps1 para Windows (PowerShell)
commit-simple.sh para macOS/Linux (Bash)
- Documentación detallada en README.md sobre el uso de los scripts de automatización
- Sección específica en README.md con ejemplos de uso para los scripts
Mejorado
- Flujo de trabajo de desarrollo con scripts que simplifican las operaciones de Git
- Documentación sobre el uso de la opción
--no-verify en comandos Git
0.2.3 2025-04-25
Añadido
- Integración de la biblioteca Toastify JS para mostrar notificaciones elegantes en lugar de alertas JavaScript
- Carga global de recursos de Toastify en los archivos base del sitio para todas las páginas
Corregido
- Problema de visualización del navbar en la página de changelog que no se mostraba correctamente
- Conflicto entre los estilos del changelog y los estilos del navbar que causaba problemas de visualización
- Problema con la Content Security Policy (CSP) que afectaba la carga de recursos externos
Mejorado
- Simplificación del código JavaScript para la visualización del contenido del changelog
- Eliminación del botón "Forzar visualización del contenido" que ya no es necesario
- Optimización de los selectores CSS para evitar conflictos entre elementos
- Consistencia visual del navbar en todas las páginas del sitio
- Experiencia de usuario al reemplazar alertas JavaScript por notificaciones toast no intrusivas
Detalles Técnicos
- Se implementó una solución robusta para garantizar que el navbar se muestre correctamente en la página de changelog mediante selectores CSS altamente específicos
- Se modificó la forma en que se cargan los recursos de Toastify para cumplir con la política de seguridad del sitio
- Se optimizó el código JavaScript para que solo aplique estilos a los elementos del changelog y no a todos los elementos de la página
- Se simplificaron los estilos CSS para mayor mantenibilidad y rendimiento
- Se mejoró la experiencia de usuario al eliminar elementos innecesarios y hacer que la interfaz sea más limpia y profesional
0.2.2 2025-04-25
Añadido
- Archivo
.user.ini en el directorio legacy para configurar PHP a nivel de directorio
- Configuración específica para el manejo de errores en el directorio legacy
Corregido
- Problema crítico con
legacy/login.php que se descargaba en lugar de ejecutarse en el servidor
- Configuración del handler de PHP en
.htaccess para asegurar la correcta ejecución de archivos PHP
- Redirección adecuada en
legacy/index.php hacia menu_slider.php
Mejorado
- Configuración de
.htaccess en el directorio legacy para garantizar la ejecución correcta de PHP
- Implementación de redirección HTTPS en el directorio legacy
- Protección del archivo
.htaccess contra acceso directo
- Configuración de permisos para archivos PHP críticos
Detalles Técnicos
- Se solucionó el problema donde
legacy/login.php se descargaba como archivo en lugar de ejecutarse. Este problema ocurría porque el servidor no estaba configurado correctamente para procesar archivos PHP en el directorio legacy.
- Se implementó una configuración específica en
.htaccess para asegurar que los archivos PHP se ejecuten correctamente.
- Se añadió un archivo
.user.ini para configurar PHP a nivel de directorio, desactivando la visualización de errores en producción.
- Se verificó la correcta configuración de los archivos
.htaccess en la raíz del proyecto y en el directorio legalhealthmanagement para garantizar la compatibilidad y seguridad.
0.2.0 2025-04-24
Añadido
- Documentación de la estructura de navegación del sistema legacy
- Documentación de la estructura actual del sistema legacy
- Documentación de la estructura MVC propuesta
- Plan de implementación detallado para la migración
- Documentación de problemas identificados y soluciones
- Creación de directorios para la nueva estructura MVC en legacy
- Implementación de archivo de configuración centralizado
- Corrección del problema de constantes redefinidas en db.php
- Mejora de la gestión de conexiones a la base de datos
- Implementación de la clase Database para gestión de conexiones
- Creación de clases base para modelos y controladores
- Implementación de sistema de plantillas para vistas
- Creación de estructura MVC para legalhealthmanagement
- Desarrollo de plantillas base (layouts) para legalhealthmanagement
- Implementación de vista de dashboard para legalhealthmanagement
Mejorado
- Actualización del plan de implementación con tareas más detalladas
- Estructura del proyecto con separación clara entre legacy y nueva versión
- Documentación técnica con guías metodológicas para la migración
0.2.1 2025-04-23
Añadido
- Archivos de diagnóstico para solucionar problemas de configuración del servidor
- Archivo .htaccess.simple con configuración minimalista para mayor compatibilidad
- Archivo .htaccess.root específico para el directorio raíz
- Archivo index.html alternativo con redirección y solución de problemas
- Archivo web.config para servidores Windows (IIS)
- Documentación detallada para administradores de servidor (INSTRUCCIONES_SERVIDOR.md)
- Archivos de verificación de PHP (verificar-php.php, diagnostico.php)
Corregido
- Problema de procesamiento de archivos PHP en el servidor (archivos se descargaban en lugar de ejecutarse)
- Error de constante obsoleta FILTER_SANITIZE_STRING en app_access.php
- Conflicto entre index.html e index.php que causaba bucles de redirección
- Problema de URLs no limpias (mostraba index.php en la URL)
- Error "Cannot modify header information - headers already sent" en app_access.php
- Configuración de .htaccess para mayor compatibilidad con diferentes servidores
Mejorado
- Simplificación de la configuración de .htaccess para mayor compatibilidad
- Implementación de URLs limpias con redirecciones 301
- Actualización de la configuración de DirectoryIndex para priorizar index.php
- Actualización de la documentación con instrucciones de solución de problemas
- Compatibilidad con PHP 8.1+ reemplazando funciones obsoletas
0.1.5 2025-04-20
Añadido
- Video de fondo en la sección hero principal, tomado del sitio oficial de González Páez Abogados
- Visor interactivo para el CHANGELOG.md con diseño integrado al sitio
- Carpeta de organización para archivos antiguos o en desuso
Mejorado
- Diseño de la sección de contacto, eliminando el formulario y mejorando la presentación
- Estructura del footer, eliminando la sección de suscripción al boletín
- Corrección del navbar en modo oscuro para la nueva versión
- Actualización de la documentación en README.md
Corregido
- Error de Content Security Policy (CSP) que impedía cargar los iconos de Font Awesome desde CDN
- Error de X-Frame-Options en meta tag (movido a cabeceras HTTP)
- Posición de la línea de tiempo para que no atraviese el título y subtítulo
0.1.4 2025-04-15
Añadido
- Archivo de prueba test-php.php para verificar la configuración de PHP
- Solución para el error 500 en entornos Windows con XAMPP
- Configuración optimizada de .htaccess para compatibilidad con Windows
Mejorado
- Scripts batch para Windows con soporte para variables de entorno
- Configuración de PHP para mostrar errores en entorno de desarrollo
- Compatibilidad con Apache en Windows
Corregido
- Error 500 al acceder al sitio en entorno local con XAMPP
- Problemas de permisos en archivos .htaccess
- Configuración de cabeceras HTTP para mayor compatibilidad
0.1.3 2025-04-15
Añadido
- Soporte completo para Windows 11 con XAMPP
- Scripts de utilidad para Windows:
- start-server.bat para iniciar servidor PHP local
- check-php.bat para verificar configuración de PHP
- run-tests.bat para ejecutar pruebas y verificaciones
- Actualización de la configuración de VS Code para Windows 11
- Documentación detallada para la instalación y configuración en Windows 11
Mejorado
- Estructura de la documentación con instrucciones específicas para cada sistema operativo
- Configuración de VS Code para detectar PHP en la ruta de XAMPP para Windows
- Compatibilidad multiplataforma de los scripts de desarrollo
0.1.2 2025-04-10
Añadido
- Documentación detallada en README.md sobre la configuración de PHP y hooks de Git
- Documentación completa del flujo de trabajo de desarrollo
- Actualización del CHANGELOG.md con información detallada de todos los cambios
Mejorado
- Estructura de la documentación para mayor claridad
- Instrucciones detalladas para la instalación y configuración
0.1.1 2025-04-05
Añadido
- Configuración de entorno de desarrollo PHP 8.x con XAMPP
- Integración con Composer para gestión de dependencias
- Configuración de herramientas de calidad de código:
- PHPUnit para pruebas unitarias
- PHP CS Fixer para formateo de código según PSR-12
- PHPStan para análisis estático
- Hook de pre-push personalizado con las siguientes características:
- Detección automática de proyectos PHP
- Validaciones específicas para PHP
- Compatibilidad con hooks globales
- Scripts de utilidad para desarrollo (macOS/Linux):
- start-server.sh para iniciar servidor PHP local
- check-php.sh para verificar configuración de PHP
- run-tests.sh para ejecutar pruebas y verificaciones
- Configuración de VS Code para desarrollo PHP:
- settings.json para reconocer PHP en XAMPP
- launch.json para depuración
- tasks.json para tareas automatizadas
- Estructura de directorios mejorada siguiendo estándares PSR-4
- Clase de ejemplo Application en src/Core con pruebas unitarias
- Actualización de documentación con información sobre el entorno de desarrollo
Modificado
- Conversión de archivos HTML a PHP para mayor seguridad
- Mejora en la estructura de archivos PHP con inclusiones
- Implementación de funciones de seguridad en PHP
- Actualización de la configuración de seguridad en .htaccess
0.1.0 2025-04-01
Añadido
- Creación inicial del proyecto
- Estructura básica de directorios
- README.md con documentación del proyecto
- CHANGELOG.md para seguimiento de cambios
- Configuración inicial de Bootstrap 5
- Diseño inicial de la landing page
- Secciones para acceso a aplicaciones legacy y nueva versión
- Línea de tiempo para visualización del progreso de migración
Pendiente
- Integración con la aplicación legacy
- Desarrollo completo de la nueva versión con Bootstrap 5 (Minia)
- Implementación de autenticación unificada
- Migración de datos entre versiones
- Pruebas de rendimiento y usabilidad
- Documentación técnica detallada