limita la exportación a una sección * (sin parámetro) exporta todo lo que el usuario puede ver * * Se sirve sin el layout del ERP: la idea es que la página sea el entregable. */ require_once APP_ROOT . '/config/config.php'; if (!isUserLoggedIn()) { header('Location: ' . BASE_URL . 'login.php'); exit; } require_once __DIR__ . '/../Markdown.php'; require_once __DIR__ . '/../DocIndex.php'; require_once __DIR__ . '/../Generadores.php'; $arbol = DocIndex::arbol(); // Filtro opcional por sección $soloSeccion = preg_replace('/[^a-z0-9-]/', '', $_GET['s'] ?? ''); if ($soloSeccion && isset($arbol[$soloSeccion])) { $arbol = [$soloSeccion => $arbol[$soloSeccion]]; } // Datos del laboratorio para la portada $emp = ['empresa_nombre' => 'Laboratorio Clínico', 'empresa_subtitulo' => '', 'doc_logo_base64' => '']; try { $rows = Database::getInstance()->getConnection()->query( "SELECT clave, valor FROM lab_config WHERE clave IN ('empresa_nombre','empresa_subtitulo','doc_logo_base64')" )->fetchAll(PDO::FETCH_KEY_PAIR); $emp = array_merge($emp, $rows ?: []); } catch (\Throwable $_) {} // Numeración: 1. Sección → 1.1 Documento $capitulos = []; $nSec = 0; foreach ($arbol as $sec => $cfg) { $nSec++; $docs = []; $nDoc = 0; foreach ($cfg['docs'] as $d) { $nDoc++; [, $cuerpo] = DocIndex::leer($d['archivo']); $md = Generadores::expandir($cuerpo); // El H1 del documento se reemplaza por el encabezado numerado $md = preg_replace('/^#\s+.*$/m', '', $md, 1); $docs[] = [ 'num' => "{$nSec}.{$nDoc}", 'titulo' => $d['titulo'], 'id' => 'doc-' . $sec . '-' . $d['slug'], 'html' => Markdown::render($md), ]; } $capitulos[] = ['num' => (string)$nSec, 'titulo' => $cfg['titulo'], 'resumen' => $cfg['resumen'], 'id' => 'cap-' . $sec, 'docs' => $docs]; } $totalDocs = array_sum(array_map(fn($c) => count($c['docs']), $capitulos)); $esc = fn($s) => htmlspecialchars((string)$s, ENT_QUOTES); ?>
= $esc($arbol[$soloSeccion]['resumen']) ?> Manual de usuario, documentación técnica, arquitectura y guía de operación del sistema de gestión del laboratorio.
= $esc($cap['resumen']) ?>
= $esc($d['num']) ?>= $esc($d['titulo']) ?>= $esc($cap['resumen']) ?>