RN Risus NovaDocumentación oficial
Risus Nova 2.1.5

Cómo arranca Risus Nova

Recorrido exacto desde index.php hasta la selección del controlador del módulo.

Actualizada: 2026-07-27Autor: Equipo PHPost3 min de lectura

Resumen del arranque

El archivo index.php comienza cargando header.php. Solo después obtiene la acción solicitada y selecciona el módulo que debe ejecutarse.

php
require_once 'header.php';

$action = $_GET['action'] ?? ($_GET['do'] ?? 'home');

Paso 1: protección contra doble carga

header.php comprueba TS_HEADER. Si ya está definida, termina inmediatamente. Esto evita inicializar dos veces clases, sesión y variables globales.

Paso 2: rutas del sistema

Se define TS_ROOT y, más adelante, las rutas constantes:

  • TS_CLASS: clases del núcleo.
  • TS_EXTRA: funciones y librerías auxiliares.
  • TS_FILES: archivos generados o subidos.

Paso 3: seguridad y sesión

Antes de crear objetos, el sistema:

  • envía cabeceras defensivas;
  • activa HSTS cuando la petición usa HTTPS;
  • inicia una sesión con cookies HttpOnly, Secure cuando corresponde y SameSite=Lax;
  • activa el modo estricto de sesiones.

Paso 4: configuración e instalación

Se carga config.inc.php. Cuando el host conserva el valor inicial dbhost, el sistema redirige al instalador.

php
if (isset($db['hostname']) && $db['hostname'] === 'dbhost') {
    header('Location: ./install/index.php');
    exit;
}

Paso 5: funciones y clases base

Se cargan las funciones globales y las clases necesarias en todas las páginas: núcleo, usuario, monitor, actividad, mensajes, Smarty y manejo de query strings.

Paso 6: limpieza de entrada

cleanRequest() se ejecuta antes de construir los objetos principales. Esta posición es importante: las capas posteriores trabajan con la petición ya normalizada.

Paso 7: objetos principales

El arranque crea:

php
$tsCore      = new tsCore();
$tsUser      = new tsUser();
$tsMonitor   = new tsMonitor();
$tsActividad = new tsActividad();
$tsMP        = new tsMensajes();

tsCore obtiene la configuración de la base de datos, categorías, tema, noticias y datos de moderación. tsUser crea o recupera la sesión y carga al usuario autenticado.

Paso 8: tema y Smarty

El tema activo se obtiene desde $tsCore->settings['tema']['t_path']. Después se instancia tsSmarty y se asignan al motor datos globales como configuración, usuario, avisos, notificaciones, mensajes, estadísticas y token CSRF.

Paso 9: controles tempranos

Antes de entrar al módulo solicitado, header.php comprueba:

  • IP incluida en la lista negra;
  • modo sin conexión;
  • suspensión del usuario.

Estos controles pueden terminar la petición antes de ejecutar el controlador.

Paso 10: selección de acción

Al regresar a index.php, un switch selecciona el controlador. La acción predeterminada es home, que carga inc/php/posts.php.

Siguiente paso

Continúa con Flujo de una petición.

¿Te ha servido esta página?

Tu respuesta ayuda a mejorar la documentación.