- Inscription sans redirection HelloAsso (acte volontaire séparé) - Génération automatique d'identifiant AlpID (prenom.code mnémotechnique) - Profil en tuiles : identité, compte, mot de passe, OTP, adhésion, adresse, connexions - Double authentification : activation/suppression OTP via Keycloak - Page d'accueil contextuelle (bienvenue si connecté, CTA adhésion si non adhérent) - Historique des connexions avec statistiques et graphiques Chart.js - Géocodage Nominatim + lien OpenStreetMap pour l'adresse - HelloAsso : checkout intent, validation paiement, mise à jour Dolibarr Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title><?= htmlspecialchars($title ?? 'Portail Alpinux') ?></title>
|
|
<link rel="stylesheet" href="/assets/style.css">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<nav>
|
|
<a href="/" class="brand">
|
|
<img src="https://static.alpinux.org/logo/alpinux-logo.svg" alt="Alpinux" height="32">
|
|
<span>Portail membres</span>
|
|
</a>
|
|
<div class="nav-links">
|
|
<?php if ($user = current_user()): ?>
|
|
<a href="/profile.php">Mon profil</a>
|
|
<?php if ($user['is_admin']): ?>
|
|
<a href="/admin/members.php">Admin</a>
|
|
<?php endif; ?>
|
|
<a href="/logout.php" class="btn-outline">Déconnexion</a>
|
|
<?php else: ?>
|
|
<a href="/register.php">S'inscrire</a>
|
|
<a href="/auth/login.php" class="btn-primary">Connexion</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main>
|
|
<?php
|
|
$flash = get_flash();
|
|
if ($flash): ?>
|
|
<div class="flash flash-<?= htmlspecialchars($flash['type']) ?>">
|
|
<?= htmlspecialchars($flash['message']) ?>
|
|
</div>
|
|
<?php endif; ?>
|