page programme avancée

This commit is contained in:
isUnknown 2024-09-02 16:32:21 +02:00
parent 9b4e35f3af
commit 3fef9cdade
6 changed files with 49 additions and 30 deletions

View file

@ -42,6 +42,10 @@
grid-template-columns: 2fr 1fr 1fr 2fr;
}
.collapsable.sessions .session {
grid-template-columns: 1fr 2fr 1fr 2fr;
}
.collapsable__content .production p:not(:last-child) {
margin-bottom: 2rem;
}

View file

@ -16,7 +16,7 @@
cursor: progress !important;
}
.calendar-strip__days.progress > li {
animation: loading 0.3s;
animation: loading 0.75s;
}
.calendar-strip__days.progress button {
cursor: progress !important;

View file

@ -45,4 +45,5 @@ return [
],
'locale' => 'fr_FR.UTF-8',
'ticketingUrl' => 'https://cdn-besancon.mapado.com/',
'stockThreshold' => 15,
];

View file

@ -46,13 +46,14 @@ return function($page) {
$arraySession['place'] = $event->place();
$arraySession['duration'] = $event->isMapadoEvent() == 'true' ? $event->remoteDuration() : $event->duration();
$arraySession['ticketingUrl'] = '';
$arraySession['bookableStock'] = $event->isMapadoEvent() == 'true' ? $session->bookableStock()->value() : 'free';
$arraySession['color'] = $event->color();
$currentSeasonSessions[] = $arraySession;
$sessionDate = str_replace('-', '', $session->date()->toDate('YMMdd'));
if ($sessionDate >= $today) {
$isStillShowing = true;
break;
}
}

View file

@ -61,7 +61,7 @@
<div
class="sessions"
x-data="{
stockThreshold: 15,
stockThreshold: <?= option('stockThreshold') ?>,
sessions: [],
slug: null,
eventDateId: null,

View file

@ -71,36 +71,49 @@
<?php if (count($sessions) > 0): ?>
<?php snippet('collapsable-section', ['title' => $month, 'sessions' => true], slots: true) ?>
<?php slot('content') ?>
<div class="session grid">
<?php
foreach($sessions as $session):
$date = new DateTime($session['date']);
$formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::NONE, IntlDateFormatter::NONE);
$formattedDate = $formatter->formatObject($date, "d MMMM");
<ul class="sessions sessions--detailed">
<?php
foreach($sessions as $session):
$date = new DateTime($session['date']);
$formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::NONE, IntlDateFormatter::NONE);
$formattedDate = $formatter->formatObject($date, "d MMMM");
try {
$endTime = strlen($session['duration']) > 0 ? getEndTime($session) : false;
} catch (\Throwable $th) {
throw new Exception($session['title'], 1);
}
try {
$endTime = strlen($session['duration']) > 0 ? getEndTime($session) : false;
} catch (\Throwable $th) {
throw new Exception($session['title'], 1);
}
?>
<div class="session__info">
<p><?= $formattedDate ?></p>
<p><?= $session['time'] ?><?php e($endTime, ' - ' . $endTime) ?></p>
</div>
<div class="session__info">
<p><strong><?= $session['title'] ?></strong></p>
<p><?= $session['authors'] ?></p>
</div>
<div class="session__info">
<p><?= $session['place'] ?></p>
</div>
<div class="session__info">
<a class="ticket-link" title="Entrée libre"><?php snippet('ticket') ?> Entrée libre</a>
</div>
<li class="session" style="--color: <?= $session['color'] ?>">
<a class="session__event-link">
<div class="session__info">
<p><?= $formattedDate ?></p>
<p><?= $session['time'] ?><?php e($endTime, ' - ' . $endTime) ?></p>
</div>
<div class="session__info">
<p><strong><?= $session['title'] ?></strong></p>
<p><?= $session['authors'] ?></p>
</div>
<div class="session__info">
<p><?= $session['place'] ?></p>
</div>
<div class="session__info">
<?php if ($session['bookableStock'] === 'free'): ?>
<a class="ticket-link" title="Entrée libre" disabled><?php snippet('ticket') ?> Entrée libre</a>
<?php else: ?>
<?php if ($session['bookableStock'] == 0): ?>
<a class="ticket-link" title="Plateforme de réservation" disabled><?php snippet('ticket') ?> Complet</a>
<?php elseif ($session['bookableStock'] < option('stockThreshold')): ?>
<a class="ticket-link" title="Plateforme de réservation" href="<?= $session['ticketingUrl'] ?>" target="_blank"><?php snippet('ticket') ?> Plus que quelques places !</a>
<?php else: ?>
<a class="ticket-link" title="Plateforme de réservation" href="<?= $session['ticketingUrl'] ?>" target="_blank"><?php snippet('ticket') ?> Billetterie</a>
<?php endif ?>
<?php endif ?>
</div>
</a>
</li>
<?php endforeach ?>
</div>
</ul>
<?php endslot() ?>
<?php endsnippet() ?>
<?php endif ?>