- app 'forum': portada (categorías/foros), ver foro y tema (paginado), crear tema,
responder, editar/borrar posts y moderación (fijar, bloquear, mover, borrar/restaurar)
- lee/escribe la BD acore_web (5ª conexión, DB_NAME_WEB) por SQL directo, tablas
forum_categories/forums/forum_topics/forum_posts/forum_reads (portado de NovaWeb-main)
- identidad = cuenta de juego en sesión; permisos simplificados por gmlevel
(FORUM_MOD_GMLEVEL) en vez de la matriz group_level×permission del original
- saneado del HTML de posts con nh3 (evita el XSS del original); POST+CSRF en formularios
- plantillas con los partials del sitio; enlace 'FOROS' del menú apunta al foro interno
- sql/forum_schema.sql y docs/FORO.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- header: saludo con bnet_email (fallback al username de juego)
- my-account: 'Cuenta (Battle.net)' = email y 'Cuenta de juego' = <bnetId>#1
- session['username'] se mantiene intacto para las consultas a la BD
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>