39773-vm/athlete.php
2026-04-22 14:26:14 +00:00

84 lines
4.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
require_once __DIR__ . '/includes/app.php';
app_boot();
require_login();
$user = current_user();
$id = (int) ($_GET['id'] ?? 0);
$stmt = db()->prepare('SELECT * FROM athletes WHERE id = :id AND user_id = :user_id LIMIT 1');
$stmt->execute(['id' => $id, 'user_id' => (int) $user['id']]);
$athlete = $stmt->fetch();
if (!$athlete) {
http_response_code(404);
render_header('Fiche introuvable', ['description' => 'La fiche sportif demandée est introuvable.']);
?>
<main class="container py-5">
<div class="empty-card">
<h1 class="h4">Fiche introuvable</h1>
<p>Le sportif demandé nexiste pas ou nest pas accessible avec votre compte.</p>
<a href="athletes.php" class="btn btn-dark">Retour à la liste</a>
</div>
</main>
<?php
render_footer();
exit;
}
render_header('Fiche sportif', ['description' => 'Consulter le détail complet dun sportif dans RJLRESAKA.']);
?>
<main class="container-xxl py-5">
<div class="d-flex flex-wrap justify-content-between align-items-start gap-3 mb-4">
<div>
<p class="section-kicker mb-1">Fiche détaillée</p>
<h1 class="h2 mb-1"><?= e($athlete['first_name'] . ' ' . $athlete['last_name']) ?></h1>
<p class="text-secondary mb-0"><?= e((string) ($athlete['position_name'] ?: 'Poste non renseigné')) ?> • <?= e((string) $athlete['sport_name']) ?></p>
</div>
<div class="d-flex gap-2 flex-wrap">
<span class="badge text-bg-<?= e(stat_badge_class((string) $athlete['status'])) ?> px-3 py-2"><?= e(ucfirst((string) $athlete['status'])) ?></span>
<a href="athletes.php" class="btn btn-outline-secondary">Retour à la liste</a>
</div>
</div>
<div class="row g-4">
<div class="col-lg-4">
<div class="panel-card p-4 h-100">
<h2 class="h5 mb-3">Résumé</h2>
<dl class="detail-list mb-0">
<div><dt>Club actuel</dt><dd><?= e((string) $athlete['club_name']) ?></dd></div>
<div><dt>Nationalité</dt><dd><?= e((string) ($athlete['nationality'] ?: 'Non renseignée')) ?></dd></div>
<div><dt>Numéro</dt><dd><?= e((string) ($athlete['jersey_number'] ?: '—')) ?></dd></div>
<div><dt>Date darrivée</dt><dd><?= e(format_date($athlete['joined_on'])) ?></dd></div>
<div><dt>Créé le</dt><dd><?= e(format_datetime($athlete['created_at'])) ?></dd></div>
</dl>
</div>
</div>
<div class="col-lg-8">
<div class="panel-card p-4 mb-4">
<div class="d-flex justify-content-between align-items-center mb-3">
<h2 class="h5 mb-0">Performance actuelle</h2>
<span class="text-secondary small">Parcours professionnel — instantané</span>
</div>
<div class="row g-3">
<div class="col-md-4"><div class="metric-card"><span>Matchs joués</span><strong><?= e((string) $athlete['matches_played']) ?></strong></div></div>
<div class="col-md-4"><div class="metric-card"><span>Buts / points</span><strong><?= e((string) $athlete['goals_scored']) ?></strong></div></div>
<div class="col-md-4"><div class="metric-card"><span>Passes décisives</span><strong><?= e((string) $athlete['assists_count']) ?></strong></div></div>
</div>
</div>
<div class="panel-card p-4 h-100">
<h2 class="h5 mb-3">Parcours et distinctions</h2>
<div class="mb-4">
<p class="text-secondary small text-uppercase mb-2">Distinctions</p>
<p class="mb-0"><?= e((string) ($athlete['awards'] ?: 'Aucune distinction renseignée.')) ?></p>
</div>
<div>
<p class="text-secondary small text-uppercase mb-2">Note de parcours</p>
<p class="mb-0 detail-note"><?= nl2br(e((string) ($athlete['career_note'] ?: 'Aucune note de parcours pour le moment.'))) ?></p>
</div>
</div>
</div>
</div>
</main>
<?php render_footer(); ?>