- Ajoute web/inc/calendar.php : récupère le flux iCal via ?p=webcal, cache le résultat 1h dans /tmp, parse les VEVENT à venir - Intègre le bloc "Prochains événements" dans index.php avant les services Closes #1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
112 lines
4.2 KiB
PHP
112 lines
4.2 KiB
PHP
<?php
|
|
require_once __DIR__ . '/inc/config.php';
|
|
require_once __DIR__ . '/inc/auth.php';
|
|
require_once __DIR__ . '/inc/services.php';
|
|
require_once __DIR__ . '/inc/calendar.php';
|
|
|
|
session_start_safe();
|
|
|
|
$user = current_user();
|
|
$title = 'Portail Alpinux';
|
|
$services = services_list();
|
|
|
|
$is_admin = $user && ($user['is_admin'] ?? false);
|
|
$is_adherent = $user && ($user['is_adherent'] || $is_admin);
|
|
$user_groups = $user['groups'] ?? [];
|
|
|
|
require __DIR__ . '/views/layout.php';
|
|
?>
|
|
|
|
<?php if ($user): ?>
|
|
|
|
<div class="hero">
|
|
<h1>Bienvenue, <?= htmlspecialchars($user['name'] ?: $user['username']) ?></h1>
|
|
<?php if (!$is_adherent): ?>
|
|
<p>Vous n'avez pas encore adhéré à Alpinux. Adhérer, c'est soutenir nos actions pour le logiciel libre en Savoie.</p>
|
|
<div class="hero-actions">
|
|
<a href="/helloasso/renew.php" class="btn-primary">Adhérer maintenant</a>
|
|
<a href="/profile.php" class="btn-outline">Mon profil</a>
|
|
</div>
|
|
<?php else: ?>
|
|
<p>Merci pour votre soutien. Retrouvez vos services et votre profil ci-dessous.</p>
|
|
<div class="hero-actions">
|
|
<a href="/profile.php" class="btn-outline">Mon profil</a>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php else: ?>
|
|
|
|
<div class="hero">
|
|
<h1>Portail membres Alpinux</h1>
|
|
<p>Accédez à vos services, gérez votre adhésion et votre compte AlpID.</p>
|
|
<div class="hero-actions">
|
|
<a href="/register.php" class="btn-primary">Créer mon compte</a>
|
|
<a href="/auth/login.php" class="btn-outline">Se connecter</a>
|
|
</div>
|
|
</div>
|
|
|
|
<section class="home-about">
|
|
<div class="about-grid">
|
|
<div class="about-card">
|
|
<div class="about-title">Qui sommes-nous ?</div>
|
|
<p>Alpinux est le LUG (Linux User Group) de Savoie. Nous promouvons le logiciel libre, organisons des ateliers et des événements autour de Linux et des technologies ouvertes.</p>
|
|
</div>
|
|
<div class="about-card">
|
|
<div class="about-title">Pourquoi adhérer ?</div>
|
|
<p>Adhérer, c'est soutenir nos actions pour le logiciel libre en Savoie. C'est aussi accéder à l'ensemble des services membres et participer aux décisions lors de l'assemblée générale.</p>
|
|
</div>
|
|
<div class="about-card">
|
|
<div class="about-title">AlpID</div>
|
|
<p>Un seul compte pour tous les services Alpinux. Gérez votre profil, votre adresse et votre adhésion depuis ce portail.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php $calendar_events = calendar_next_events(5); if ($calendar_events): ?>
|
|
<section class="calendar-section">
|
|
<h2>Prochains événements</h2>
|
|
<div class="about-grid">
|
|
<?php foreach ($calendar_events as $ev): ?>
|
|
<div class="about-card">
|
|
<div class="about-title"><?= htmlspecialchars($ev['title']) ?></div>
|
|
<p><?= date('d/m/Y', $ev['start']) ?><?= !empty($ev['location']) ? ' — ' . htmlspecialchars($ev['location']) : '' ?></p>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</section>
|
|
<?php endif; ?>
|
|
|
|
<section class="services-section">
|
|
<h2>Nos services</h2>
|
|
<div class="grid">
|
|
<?php foreach ($services as $s): if (!$s['visible']) continue;
|
|
$can_access = service_accessible($s, $user_groups, $is_admin); ?>
|
|
<div class="service-card <?= $s['requires_adherent'] ? 'adherent-only' : '' ?> <?= (!$can_access) ? 'locked' : '' ?>">
|
|
<div class="service-header">
|
|
<strong><?= htmlspecialchars($s['name']) ?></strong>
|
|
<?php if ($s['requires_adherent']): ?>
|
|
<span class="badge">Adhérent</span>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php if ($s['description']): ?>
|
|
<p><?= htmlspecialchars($s['description']) ?></p>
|
|
<?php endif; ?>
|
|
<div style="margin-top:.8rem">
|
|
<?php if ($can_access): ?>
|
|
<a href="<?= htmlspecialchars($s['url']) ?>" target="_blank" rel="noopener" style="font-size:.85rem">Accéder →</a>
|
|
<?php elseif ($user): ?>
|
|
<span class="text-muted small">Adhésion requise</span>
|
|
<?php else: ?>
|
|
<span class="text-muted small">Réservé aux adhérents —</span>
|
|
<a href="/register.php" style="font-size:.85rem">Adhérer</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</section>
|
|
|
|
<?php require __DIR__ . '/views/layout_end.php'; ?>
|