@extends('frontend.cropa.layouts.master') @section('title', $event->title ?? 'CROPA') @php // Même logique que le front mediknode : l'inscription est-elle ouverte, et // l'internaute connecté a-t-il déjà un participant sur cet événement ? $participant = auth()->check() ? $event->participant(auth()->id(), $event->id) : null; $dejaInscrit = $participant && $participant->workshops()->exists(); $inscriptionOuverte = !$event->is_closed_registration; $labelInscription = $dejaInscrit ? 'Modifier mon inscription' : ($event->participation_button_label ?: "S'inscrire aux journées"); // Un inscrit va directement à sa sélection ; un nouveau venu passe par l'étape 0. $lienInscription = $dejaInscrit ? route('cropa.inscription') : route('cropa.home'); // `events.cover` est stocké tantôt avec un `/` initial, tantôt sans : on // normalise, sinon un double slash produit une URL protocol-relative // (`//storage/...`) que le navigateur prend pour un nom de domaine. $coverUrl = $event->cover ? \App\Helpers\AssetVersionHelper::versioned('/' . ltrim($event->cover, '/')) : null; // Programme : même convention que les events Mediknode // (cf. frontend/mediknode/program.blade.php). Un programme *interne* est un PDF // déposé sous `/storage/mediknode/documents/{slug}-programme.pdf` - le chemin se // déduit du slug, `link_program` ne sert que pour un lien externe. $programmeInterne = (bool) $event->is_internal_link_program; $lienProgramme = $programmeInterne ? url('/storage/mediknode/documents/' . $event->slug . '-programme.pdf') . '?v=' . time() : $event->link_program; $afficherProgramme = $event->has_program && ($programmeInterne ? file_exists(public_path('storage/mediknode/documents/' . $event->slug . '-programme.pdf')) : !empty($event->link_program)); // `label_program` est le libellé de consultation ; `label_download_program` // celui du téléchargement. Le PDF s'ouvre dans un onglet : on consulte. $labelProgramme = $event->label_program ?: 'Consulter le programme'; @endphp @section('content') {{-- Actions en haut de page --}} @include('frontend.cropa.partials.boutons')