fetch("SELECT valor FROM lab_config WHERE clave = 'doc_color'"); if ($_sb_row && preg_match('/^#[0-9a-fA-F]{3,8}$/', $_sb_row['valor'])) { $_sb_brand = $_sb_row['valor']; $_sb_hex = ltrim($_sb_brand, '#'); $_sb_brand_dark = sprintf('#%02x%02x%02x', max(0, hexdec(substr($_sb_hex, 0, 2)) - 40), max(0, hexdec(substr($_sb_hex, 2, 2)) - 40), max(0, hexdec(substr($_sb_hex, 4, 2)) - 40) ); } } } catch (\Throwable $_) {} echo "\n"; } // Ruta del script que está siendo cargado actualmente $_current_script = basename($_SERVER['PHP_SELF']); /** * Retorna 'active' si la URL o script actual coincide con la ruta dada. */ $_isActive = function (string $route) use ($_current_script): string { if ($route === '') return ''; $parsed = parse_url($route); $routeBase = basename($parsed['path'] ?? ''); // Rutas ERP con query params: comparar script Y cada param de la ruta if (!empty($parsed['query'])) { $uriParsed = parse_url($_SERVER['REQUEST_URI'] ?? ''); if ($routeBase !== basename($uriParsed['path'] ?? '')) return ''; parse_str($parsed['query'], $routeParams); parse_str($uriParsed['query'] ?? '', $uriParams); foreach ($routeParams as $k => $v) { if (($uriParams[$k] ?? null) !== $v) return ''; } return ' active'; } // Rutas directas como /lab_domicilios.php return $routeBase === $_current_script ? ' active' : ''; }; // Título del sidebar: prioridad al nombre definido por el módulo, luego el genérico $_sidebar_title = $SIDEBAR_TITLE ?? $GLOBALS['_LAYOUT_TITLE'] ?? 'Panel ERP'; $_sidebar_icon = $SIDEBAR_ICON ?? $GLOBALS['_LAYOUT_ICON'] ?? 'fas fa-th-large'; // Nombre del usuario para el pie del sidebar $_user_name = $_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user']['username'] ?? 'Usuario'; $_user_role = $_SESSION['admin_user']['role'] ?? 'admin'; // Mapa de roles a etiqueta legible $_role_label = [ 'superadmin' => 'Super Admin', 'admin' => 'Administrador', 'recepcionista' => 'Recepcionista', 'bacteriologo' => 'Bacteriólogo', 'enfermero' => 'Enfermero', 'supervisor' => 'Supervisor', 'operador_bot' => 'Operador Bot', 'readonly' => 'Solo Lectura', ][$_user_role] ?? ucfirst($_user_role); // Base URL para rutas relativas $_base = defined('APP_URL') ? rtrim(APP_URL, '/') : ''; ?>