Init Git Prod Mars 2026

This commit is contained in:
Oleg Barykin committed 2026-03-05 10:25:39 +01:00
commit d81efe93b1
362 files changed
+86627

No files matched your search

+166
View File
@@ -0,0 +1,166 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void {
global $translations, $lang;
ob_start();
include $absPath;
$buf = ob_get_clean() ?: '';
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf;
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES, 'UTF-8') ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars($translations['seo_topic_business_title'] ?? 'USLUGI.FR', ENT_QUOTES, 'UTF-8') ?></title>
<meta name="description" content="<?= htmlspecialchars($translations['seo_topic_business_desc'] ?? '', ENT_QUOTES, 'UTF-8') ?>">
<meta name="keywords" content="<?= htmlspecialchars($translations['seo_topic_business_keywords'] ?? '', ENT_QUOTES, 'UTF-8') ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= $translations['btn_se_connecter'] ?></span>
<span class="d-none d-sm-inline"><?= $translations['ja_spec'] ?></span>
</a>
<div class="dropdown">
<button class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button" data-bs-toggle="dropdown" data-bs-auto-close="true"
aria-expanded="false" aria-label="<?= htmlspecialchars($translations['aria_help'] ?? 'Помощь') ?>">
?
</button>
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= $translations['kak_rabotaet'] ?></a></li>
<li><a href="/about.php"><?= $translations['pro_nas'] ?></a></li>
<li><a href="/faq.php"><?= $translations['faq'] ?></a></li>
<li><a href="/contact.php"><?= $translations['nam_pisat'] ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= $translations['topic_business_h1'] ?></h1>
<p><?= $translations['topic_business_intro'] ?></p>
<div class="toc">
<a href="#forms"><?= $translations['topic_business_toc_forms'] ?></a>
<a href="#reg"><?= $translations['topic_business_toc_reg'] ?></a>
<a href="#tax"><?= $translations['topic_business_toc_tax'] ?></a>
<a href="#account"><?= $translations['topic_business_toc_account'] ?></a>
<a href="#errors"><?= $translations['topic_business_toc_errors'] ?></a>
</div>
<h2 id="forms"><?= $translations['topic_business_h2_forms'] ?></h2>
<p><?= $translations['topic_business_p_forms'] ?></p>
<h2 id="reg"><?= $translations['topic_business_h2_reg'] ?></h2>
<p><?= $translations['topic_business_p_reg'] ?></p>
<h2 id="tax"><?= $translations['topic_business_h2_tax'] ?></h2>
<p><?= $translations['topic_business_p_tax'] ?></p>
<h2 id="account"><?= $translations['topic_business_h2_account'] ?></h2>
<p><?= $translations['topic_business_p_account'] ?></p>
<h2 id="errors"><?= $translations['topic_business_h2_errors'] ?></h2>
<p><?= $translations['topic_business_p_errors'] ?></p>
<div class="callout">
<strong><?= $translations['topic_business_callout_label'] ?></strong>
<?= $translations['topic_business_callout_text'] ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= $translations['topic_business_cta_find'] ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= $translations['copyr'] ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
+166
View File
@@ -0,0 +1,166 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void {
global $translations, $lang;
ob_start();
include $absPath;
$buf = ob_get_clean() ?: '';
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf;
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES, 'UTF-8') ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars($translations['seo_topic_family_title'] ?? 'USLUGI.FR', ENT_QUOTES, 'UTF-8') ?></title>
<meta name="description" content="<?= htmlspecialchars($translations['seo_topic_family_desc'] ?? '', ENT_QUOTES, 'UTF-8') ?>">
<meta name="keywords" content="<?= htmlspecialchars($translations['seo_topic_family_keywords'] ?? '', ENT_QUOTES, 'UTF-8') ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= $translations['btn_se_connecter'] ?></span>
<span class="d-none d-sm-inline"><?= $translations['ja_spec'] ?></span>
</a>
<div class="dropdown">
<button class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button" data-bs-toggle="dropdown" data-bs-auto-close="true"
aria-expanded="false" aria-label="<?= htmlspecialchars($translations['aria_help'] ?? 'Помощь') ?>">
?
</button>
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= $translations['kak_rabotaet'] ?></a></li>
<li><a href="/about.php"><?= $translations['pro_nas'] ?></a></li>
<li><a href="/faq.php"><?= $translations['faq'] ?></a></li>
<li><a href="/contact.php"><?= $translations['nam_pisat'] ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= $translations['topic_family_h1'] ?></h1>
<p><?= $translations['topic_family_intro'] ?></p>
<div class="toc">
<a href="#mariage"><?= $translations['topic_family_toc_mariage'] ?></a>
<a href="#pacs"><?= $translations['topic_family_toc_pacs'] ?></a>
<a href="#divorce"><?= $translations['topic_family_toc_divorce'] ?></a>
<a href="#children"><?= $translations['topic_family_toc_children'] ?></a>
<a href="#docs"><?= $translations['topic_family_toc_docs'] ?></a>
</div>
<h2 id="mariage"><?= $translations['topic_family_h2_mariage'] ?></h2>
<p><?= $translations['topic_family_p_mariage'] ?></p>
<h2 id="pacs"><?= $translations['topic_family_h2_pacs'] ?></h2>
<p><?= $translations['topic_family_p_pacs'] ?></p>
<h2 id="divorce"><?= $translations['topic_family_h2_divorce'] ?></h2>
<p><?= $translations['topic_family_p_divorce'] ?></p>
<h2 id="children"><?= $translations['topic_family_h2_children'] ?></h2>
<p><?= $translations['topic_family_p_children'] ?></p>
<h2 id="docs"><?= $translations['topic_family_h2_docs'] ?></h2>
<p><?= $translations['topic_family_p_docs'] ?></p>
<div class="callout">
<strong><?= $translations['topic_family_callout_label'] ?></strong>
<?= $translations['topic_family_callout_text'] ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= $translations['topic_family_cta_find'] ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= $translations['copyr'] ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
+184
View File
@@ -0,0 +1,184 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void
{
global $translations, $lang;
ob_start();
include $absPath; // /public/includes/header.php
$buf = ob_get_clean() ?: '';
// 0) DOCTYPE + <html>…</html>
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
// 1) retirer <head>…</head> et <body> ouverts/fermés
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
// 2) retirer les <link> CSS “globaux” pour éviter d’écraser la home
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
// 3) retirer le <script> Bootstrap CDN (on le charge déjà en bas de la page)
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf; // garde <header> + tes scripts inline utiles
}
// helpers safe (optionnel mais propre)
function t(string $key, string $fallback = ''): string {
global $translations;
return (string)($translations[$key] ?? $fallback);
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES) ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars(t('seo_medecine_title'), ENT_QUOTES) ?></title>
<meta name="description" content="<?= htmlspecialchars(t('seo_medecine_desc'), ENT_QUOTES) ?>">
<meta name="keywords" content="<?= htmlspecialchars(t('seo_medecine_keywords'), ENT_QUOTES) ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
.faq dt{ font-weight:600; margin-top:10px; }
.faq dd{ margin-left:0; color:var(--muted); }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<!-- Header minimal (logo + actions) -->
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= t('btn_se_connecter') ?></span>
<span class="d-none d-sm-inline"><?= t('ja_spec') ?></span>
</a>
<div class="dropdown">
<button
class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button"
data-bs-toggle="dropdown"
data-bs-auto-close="true"
aria-expanded="false"
aria-label="<?= htmlspecialchars(t('aria_help_label'), ENT_QUOTES) ?>">
?
</button>
<!-- Menu compact -->
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= t('kak_rabotaet') ?></a></li>
<li><a href="/about.php"><?= t('pro_nas') ?></a></li>
<li><a href="/faq.php"><?= t('faq') ?></a></li>
<li><a href="/contact.php"><?= t('nam_pisat') ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= t('medecine_h1') ?></h1>
<p><?= t('medecine_intro') ?></p>
<div class="toc">
<a href="#gp"><?= t('medecine_toc_gp') ?></a>
<a href="#assurance"><?= t('medecine_toc_assurance') ?></a>
<a href="#labs"><?= t('medecine_toc_labs') ?></a>
<a href="#dentaire"><?= t('medecine_toc_dentaire') ?></a>
<a href="#hospital"><?= t('medecine_toc_hospital') ?></a>
</div>
<h2 id="gp"><?= t('medecine_h2_gp') ?></h2>
<p><?= t('medecine_p_gp') ?></p>
<h2 id="assurance"><?= t('medecine_h2_assurance') ?></h2>
<p><?= t('medecine_p_assurance') ?></p>
<h2 id="labs"><?= t('medecine_h2_labs') ?></h2>
<p><?= t('medecine_p_labs') ?></p>
<h2 id="dentaire"><?= t('medecine_h2_dentaire') ?></h2>
<p><?= t('medecine_p_dentaire') ?></p>
<h2 id="hospital"><?= t('medecine_h2_hospital') ?></h2>
<p><?= t('medecine_p_hospital') ?></p>
<div class="callout">
<strong><?= t('medecine_tip_strong') ?></strong> <?= t('medecine_tip_text') ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= t('medecine_btn_find') ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= t('copyr') ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
+183
View File
@@ -0,0 +1,183 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void
{
global $translations, $lang;
ob_start();
include $absPath; // /public/includes/header.php
$buf = ob_get_clean() ?: '';
// 0) DOCTYPE + <html>…</html>
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
// 1) retirer <head>…</head> et <body> ouverts/fermés
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
// 2) retirer les <link> CSS “globaux” pour éviter d’écraser la home
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
// 3) retirer le <script> Bootstrap CDN (on le charge déjà en bas de la page)
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf; // garde <header> + tes scripts inline utiles
}
// helper simple
function t(string $key, string $fallback = ''): string {
global $translations;
return (string)($translations[$key] ?? $fallback);
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES) ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars(t('seo_immigration_title'), ENT_QUOTES) ?></title>
<meta name="description" content="<?= htmlspecialchars(t('seo_immigration_desc'), ENT_QUOTES) ?>">
<meta name="keywords" content="<?= htmlspecialchars(t('seo_immigration_keywords'), ENT_QUOTES) ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
.faq dt{ font-weight:600; margin-top:10px; }
.faq dd{ margin-left:0; color:var(--muted); }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<!-- Header minimal (logo + actions) -->
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= t('btn_se_connecter') ?></span>
<span class="d-none d-sm-inline"><?= t('ja_spec') ?></span>
</a>
<div class="dropdown">
<button
class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button"
data-bs-toggle="dropdown"
data-bs-auto-close="true"
aria-expanded="false"
aria-label="<?= htmlspecialchars(t('aria_help_label'), ENT_QUOTES) ?>">
?
</button>
<!-- Menu compact -->
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= t('kak_rabotaet') ?></a></li>
<li><a href="/about.php"><?= t('pro_nas') ?></a></li>
<li><a href="/faq.php"><?= t('faq') ?></a></li>
<li><a href="/contact.php"><?= t('nam_pisat') ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= t('immigration_h1') ?></h1>
<p><?= t('immigration_intro') ?></p>
<div class="toc">
<a href="#visa-d"><?= t('immigration_toc_visa_d') ?></a>
<a href="#vnj"><?= t('immigration_toc_vnj') ?></a>
<a href="#nat"><?= t('immigration_toc_nat') ?></a>
<a href="#family"><?= t('immigration_toc_family') ?></a>
<a href="#docs"><?= t('immigration_toc_docs') ?></a>
</div>
<h2 id="visa-d"><?= t('immigration_h2_visa_d') ?></h2>
<p><?= t('immigration_p_visa_d') ?></p>
<h2 id="vnj"><?= t('immigration_h2_vnj') ?></h2>
<p><?= t('immigration_p_vnj') ?></p>
<h2 id="nat"><?= t('immigration_h2_nat') ?></h2>
<p><?= t('immigration_p_nat') ?></p>
<h2 id="family"><?= t('immigration_h2_family') ?></h2>
<p><?= t('immigration_p_family') ?></p>
<h2 id="docs"><?= t('immigration_h2_docs') ?></h2>
<p><?= t('immigration_p_docs') ?></p>
<div class="callout">
<strong><?= t('immigration_tip_strong') ?></strong> <?= t('immigration_tip_text') ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= t('immigration_btn_find') ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= t('copyr') ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
+183
View File
@@ -0,0 +1,183 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void
{
global $translations, $lang;
ob_start();
include $absPath; // /public/includes/header.php
$buf = ob_get_clean() ?: '';
// 0) DOCTYPE + <html>…</html>
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
// 1) retirer <head>…</head> et <body> ouverts/fermés
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
// 2) retirer les <link> CSS “globaux” pour éviter d’écraser la home
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
// 3) retirer le <script> Bootstrap CDN (on le charge déjà en bas de la page)
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf; // garde <header> + tes scripts inline utiles
}
// helper simple
function t(string $key, string $fallback = ''): string {
global $translations;
return (string)($translations[$key] ?? $fallback);
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES) ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars(t('seo_travail_title'), ENT_QUOTES) ?></title>
<meta name="description" content="<?= htmlspecialchars(t('seo_travail_desc'), ENT_QUOTES) ?>">
<meta name="keywords" content="<?= htmlspecialchars(t('seo_travail_keywords'), ENT_QUOTES) ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
.faq dt{ font-weight:600; margin-top:10px; }
.faq dd{ margin-left:0; color:var(--muted); }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<!-- Header minimal (logo + actions) -->
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= t('btn_se_connecter') ?></span>
<span class="d-none d-sm-inline"><?= t('ja_spec') ?></span>
</a>
<div class="dropdown">
<button
class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button"
data-bs-toggle="dropdown"
data-bs-auto-close="true"
aria-expanded="false"
aria-label="<?= htmlspecialchars(t('aria_help_label'), ENT_QUOTES) ?>">
?
</button>
<!-- Menu compact -->
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= t('kak_rabotaet') ?></a></li>
<li><a href="/about.php"><?= t('pro_nas') ?></a></li>
<li><a href="/faq.php"><?= t('faq') ?></a></li>
<li><a href="/contact.php"><?= t('nam_pisat') ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= t('travail_h1') ?></h1>
<p><?= t('travail_intro') ?></p>
<div class="toc">
<a href="#cv"><?= t('travail_toc_cv') ?></a>
<a href="#contracts"><?= t('travail_toc_contracts') ?></a>
<a href="#rights"><?= t('travail_toc_rights') ?></a>
<a href="#dismiss"><?= t('travail_toc_dismiss') ?></a>
<a href="#unemployment"><?= t('travail_toc_unemployment') ?></a>
</div>
<h2 id="cv"><?= t('travail_h2_cv') ?></h2>
<p><?= t('travail_p_cv') ?></p>
<h2 id="contracts"><?= t('travail_h2_contracts') ?></h2>
<p><?= t('travail_p_contracts') ?></p>
<h2 id="rights"><?= t('travail_h2_rights') ?></h2>
<p><?= t('travail_p_rights') ?></p>
<h2 id="dismiss"><?= t('travail_h2_dismiss') ?></h2>
<p><?= t('travail_p_dismiss') ?></p>
<h2 id="unemployment"><?= t('travail_h2_unemployment') ?></h2>
<p><?= t('travail_p_unemployment') ?></p>
<div class="callout">
<strong><?= t('travail_tip_strong') ?></strong> <?= t('travail_tip_text') ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= t('travail_btn_find') ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= t('copyr') ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
+183
View File
@@ -0,0 +1,183 @@
<?php
require_once __DIR__ . '/../public/includes/lang.php';
// ===== Helpers header (identiques à index.php) =====
function is_client_logged_in(): bool {
$role = $_SESSION['role'] ?? ($_SESSION['user_type'] ?? '');
if (!empty($_SESSION['user_id']) && $role === 'client') return true;
if (!empty($_SESSION['client_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'client') return true;
if (!empty($_SESSION['user_id']) && $role === 'praticien') return true;
if (!empty($_SESSION['praticien_id'])) return true;
if (!empty($_SESSION['reference_id']) && $role === 'praticien') return true;
return false;
}
function include_header_clean(string $absPath): void
{
global $translations, $lang;
ob_start();
include $absPath; // /public/includes/header.php
$buf = ob_get_clean() ?: '';
// 0) DOCTYPE + <html>…</html>
$buf = preg_replace('~<!doctype\s+html[^>]*>~i', '', $buf);
$buf = preg_replace('~</?html\b[^>]*>~i', '', $buf);
// 1) retirer <head>…</head> et <body> ouverts/fermés
$buf = preg_replace('~<head\b[^>]*>.*?</head>~is', '', $buf);
$buf = preg_replace('~</?body\b[^>]*>~i', '', $buf);
// 2) retirer les <link> CSS “globaux” pour éviter d’écraser la home
$buf = preg_replace('~<link[^>]+href="[^"]*(bootstrap[^"]*\.css|mobil_style\.css|site_style\.css|fonts\.googleapis)[^"]*"[^>]*>~i', '', $buf);
// 3) retirer le <script> Bootstrap CDN (on le charge déjà en bas de la page)
$buf = preg_replace('~<script[^>]+src="[^"]*bootstrap[^"]*bundle[^"]*\.js[^"]*"[^>]*>\s*</script>~i', '', $buf);
echo $buf; // garde <header> + tes scripts inline utiles
}
// helper simple
function t(string $key, string $fallback = ''): string {
global $translations;
return (string)($translations[$key] ?? $fallback);
}
?>
<!doctype html>
<html lang="<?= htmlspecialchars($lang ?? 'ru', ENT_QUOTES) ?>">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars(t('seo_taxes_title'), ENT_QUOTES) ?></title>
<meta name="description" content="<?= htmlspecialchars(t('seo_taxes_desc'), ENT_QUOTES) ?>">
<meta name="keywords" content="<?= htmlspecialchars(t('seo_taxes_keywords'), ENT_QUOTES) ?>">
<meta name="author" content="Uslugi.fr">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="<?= asset('/includes/site_style.css') ?>">
<link rel="stylesheet" href="<?= asset('/includes/custom_style.css') ?>"> <!-- ta home -->
<link rel="stylesheet" href="<?= asset('/includes/mobil_style.css') ?>">
<style>
.topic { --brand:#38378B; --mint:#06FFA8; --text:#111; --muted:#4b5563; --card:#fff; --border:#e5e7eb; }
.topic { font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--text); }
.topic .wrap { max-width: 980px; margin: 0 auto; padding: clamp(16px,4vw,32px); }
.topic .card { background: var(--card); border:1px solid var(--border); border-radius:16px;
box-shadow: 0 8px 24px rgba(0,0,0,.06); padding: clamp(18px,3.6vw,28px); }
.topic h1 { font-size: clamp(26px, 5.5vw, 38px); line-height:1.2; margin: 0 0 16px; }
.topic h2 { font-size: clamp(20px, 4.6vw, 26px); margin: 16px 0 10px; }
.topic p { font-size: clamp(14px, 2.8vw, 16px); line-height:1.65; color: var(--muted); margin: 0 0 12px; }
.topic ul { padding-left: 1.1rem; }
.topic .btn-index { border-radius: 999px; }
.toc { margin: 10px 0 16px; }
.toc a { display:inline-block; margin: 4px 8px 0 0; text-decoration:none; border:1px dashed var(--border); border-radius:999px; padding:6px 10px; color:#1f2937; }
.callout{ margin-top:16px; border-left:6px solid var(--brand);
background: color-mix(in oklab, var(--brand) 8%, #fff); border-radius:12px; padding:14px 16px; }
.faq dt{ font-weight:600; margin-top:10px; }
.faq dd{ margin-left:0; color:var(--muted); }
</style>
<?php include_once __DIR__ . '/../includes/tracking.php';?>
</head>
<body>
<!-- Header minimal (logo + actions) -->
<?php if (is_client_logged_in()): ?>
<?php include_header_clean(__DIR__ . '/../public/includes/header.php'); ?>
<?php else: ?>
<header class="site-header">
<div class="container d-flex justify-content-between align-items-center py-2">
<div class="header-left">
<div class="brand">
<a href="/index.php"><img src="/public/uploads/img/logo_u.png"
alt="uslugi.fr"
class="logo-mobile"></a>
<a href="/index.php"><img src="/public/uploads/img/logo.png"
alt="uslugi.fr"
class="logo-desktop"></a>
</div>
<div class="lang-switch">
<?php require __DIR__ . '/../includes/menu_langue.php'; ?>
</div>
</div>
<nav class="d-flex align-items-center gap-2">
<a class="btn-login" href="/connexion.php">
<span class="d-sm-none"><?= t('btn_se_connecter') ?></span>
<span class="d-none d-sm-inline"><?= t('ja_spec') ?></span>
</a>
<div class="dropdown">
<button
class="btn btn-logo rounded-circle d-inline-flex align-items-center justify-content-center question-btn"
type="button"
data-bs-toggle="dropdown"
data-bs-auto-close="true"
aria-expanded="false"
aria-label="<?= htmlspecialchars(t('aria_help_label'), ENT_QUOTES) ?>">
?
</button>
<!-- Menu compact -->
<ul class="dropdown-menu dropdown-menu-end shadow help-menu menu-panel">
<li><a href="/how-it-work.php"><?= t('kak_rabotaet') ?></a></li>
<li><a href="/about.php"><?= t('pro_nas') ?></a></li>
<li><a href="/faq.php"><?= t('faq') ?></a></li>
<li><a href="/contact.php"><?= t('nam_pisat') ?></a></li>
</ul>
</div>
</nav>
</div>
</header>
<?php endif; ?>
<main class="topic">
<div class="wrap">
<div class="card">
<h1><?= t('taxes_h1') ?></h1>
<p><?= t('taxes_intro') ?></p>
<div class="toc">
<a href="#decl"><?= t('taxes_toc_decl') ?></a>
<a href="#cot"><?= t('taxes_toc_cot') ?></a>
<a href="#ae"><?= t('taxes_toc_ae') ?></a>
<a href="#tva"><?= t('taxes_toc_tva') ?></a>
<a href="#help"><?= t('taxes_toc_help') ?></a>
</div>
<h2 id="decl"><?= t('taxes_h2_decl') ?></h2>
<p><?= t('taxes_p_decl') ?></p>
<h2 id="cot"><?= t('taxes_h2_cot') ?></h2>
<p><?= t('taxes_p_cot') ?></p>
<h2 id="ae"><?= t('taxes_h2_ae') ?></h2>
<p><?= t('taxes_p_ae') ?></p>
<h2 id="tva"><?= t('taxes_h2_tva') ?></h2>
<p><?= t('taxes_p_tva') ?></p>
<h2 id="help"><?= t('taxes_h2_help') ?></h2>
<p><?= t('taxes_p_help') ?></p>
<div class="callout">
<strong><?= t('taxes_tip_strong') ?></strong> <?= t('taxes_tip_text') ?>
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-index" href="/index.php"><?= t('taxes_btn_find') ?></a>
</div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="container">
<p><?= t('copyr') ?></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>