Files
xamxam/app/templates/header.php

122 lines
5.2 KiB
PHP

<?php
// header.php — unified site header for public and admin sections.
// Reads: $isAdmin (bool), $currentNav (string, public only)
$_isAdmin = !empty($isAdmin);
$_isLogin = !empty($isLogin);
$_navCurrent = $currentNav ?? '';
$_currentPage = basename($_SERVER['PHP_SELF']);
$_thesisId = $_GET['id'] ?? null;
?>
<header>
<a href="#main-content" class="skip-link">Aller au contenu principal</a>
<?php if ($_isAdmin && !$_isLogin): ?>
<nav aria-label="Navigation admin">
<ul class="nav-left-links">
<li><a href="/" target="_blank" rel="noopener noreferrer" class="nav-logo">
<img src="/assets/icons/sign-out.svg" width="16" height="16" alt="" aria-hidden="true">XAMXAM<span class="sr-only"> (site public, nouvel onglet)</span>
</a></li>
</ul>
<ul class="nav-right-links">
<li><a href="/admin/" <?= $_currentPage === 'index.php' ? 'aria-current="page"' : '' ?>>Liste des TFE</a></li>
<li><a href="/admin/contenus.php" <?= in_array($_currentPage, ['contenus.php', 'contenus-edit.php']) ? 'aria-current="page"' : '' ?>>Contenus</a></li>
<li><a href="/admin/acces.php" <?= in_array($_currentPage, ['acces.php', 'file-access.php', 'acces-etudiante.php']) ? 'aria-current="page"' : '' ?>>
Accès
<?php if (isset($pendingCount) && $pendingCount > 0): ?>
<span class="admin-nav-badge"><?= $pendingCount ?></span>
<?php endif; ?>
</a></li>
<li><a href="/admin/parametres.php" <?= in_array($_currentPage, ['parametres.php', 'system.php', 'status.php', 'logs.php']) ? 'aria-current="page"' : '' ?>>Paramètres</a></li>
<?php if ($_isAdmin && AdminAuth::hasPassword()): ?>
<li data-nav-logout><a href="/admin/logout.php" aria-label="Déconnexion"><img src="/assets/icons/sign-in.svg" width="20" height="20" alt="" aria-hidden="true"><span class="sr-only">Déconnexion</span></a></li>
<?php endif; ?>
</ul>
</nav>
<?php else: ?>
<input class="menu-btn" type="checkbox" id="menu-btn" name="menu-btn" />
<nav aria-label="Navigation principale">
<div class="nav-top-row">
<ul class="nav-left-links">
<li><a href="/" class="nav-logo">Xamxam</a></li>
<li>
<a href="/repertoire"
<?= ($_navCurrent === 'repertoire') ? 'aria-current="page"' : '' ?>>Répertoire</a>
</li>
</ul>
<ul class="nav-right-links">
<li>
<a href="/licence"
<?= ($_navCurrent === 'licence') ? 'aria-current="page"' : '' ?>>Licences</a>
</li>
<li>
<a href="/charte"
<?= ($_navCurrent === 'charte') ? 'aria-current="page"' : '' ?>>Charte</a>
</li>
<li>
<a href="/apropos"
<?= ($_navCurrent === 'apropos') ? 'aria-current="page"' : '' ?>>À Propos</a>
</li>
</ul>
<label class="menu-icon" for="menu-btn">
<span class="navicon" aria-label="Menu de navigation"></span>
</label>
</div>
<ul class="nav-mobile-links">
<li>
<a href="/repertoire"
<?= ($_navCurrent === 'repertoire') ? 'aria-current="page"' : '' ?>>Répertoire</a>
</li>
<li>
<a href="/licence"
<?= ($_navCurrent === 'licence') ? 'aria-current="page"' : '' ?>>Licences</a>
</li>
<li>
<a href="/charte"
<?= ($_navCurrent === 'charte') ? 'aria-current="page"' : '' ?>>Charte</a>
</li>
<li>
<a href="/apropos"
<?= ($_navCurrent === 'apropos') ? 'aria-current="page"' : '' ?>>À Propos</a>
</li>
</ul>
</nav>
<?php endif; ?>
</header>
<?php if ($_isAdmin && !$_isLogin): ?>
<div class="admin-mobile-block">
<img src="/assets/icons/desktop-monitor.svg" width="48" height="48" alt="" aria-hidden="true">
<h2>Section administrateur</h2>
<p>L'administration n'est pas accessible sur mobile. Veuillez utiliser un ordinateur.</p>
</div>
<?php endif; ?>
<?php if (!$_isAdmin && !$_isLogin): ?>
<?php
// Search bar — public section only (rendered below header for equal height)
$searchBarValue = $searchBarValue ?? $_GET['query'] ?? '';
?>
<div class="header-search-wrap">
<form method="GET" action="/search"
role="search" aria-label="Recherche" class="header-search-form">
<label for="site-search-input" class="sr-only">Recherche</label>
<div class="header-search-input-wrap">
<img src="/assets/icons/search.svg" width="24" height="24" alt="" aria-hidden="true" class="header-search-icon">
<input
id="site-search-input"
type="text"
name="query"
placeholder="Recherche..."
value="<?= htmlspecialchars($searchBarValue) ?>"
autocomplete="off"
>
</div>
</form>
</div>
<?php endif; ?>