pas de redirection abonnement. */ /* ========================= Helpers ========================= */ function is_header_logged_in(): bool { $role = (string) ($_SESSION['role'] ?? ($_SESSION['user_type'] ?? '')); if (! empty($_SESSION['reference_id']) && $role !== '') { return true; } if (! empty($_SESSION['user_id'])) { return true; } if (! empty($_SESSION['client_id'])) { return true; } if (! empty($_SESSION['praticien_id'])) { return true; } return false; } /** * Inclut /public/includes/header.php sans DOCTYPE/HTML/HEAD/BODY et sans recharger bootstrap/css. */ function include_header_clean(string $absPath): void { global $translations, $lang; require_once APP_HTDOCS . '/public/includes/securite.php'; ob_start(); include $absPath; // /public/includes/header.php $buf = ob_get_clean() ?: ''; // 0) DOCTYPE + … $buf = preg_replace('~]*>~i', '', $buf); $buf = preg_replace('~?html\b[^>]*>~i', '', $buf); // 1) retirer
… et ouverts/fermés $buf = preg_replace('~]*>.*?~is', '', $buf); $buf = preg_replace('~?body\b[^>]*>~i', '', $buf); // 2) retirer les CSS “globaux” pour éviter d’écraser la home $buf = preg_replace('~]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf); // 3) retirer le ~i', '', $buf); echo $buf; // garde