nouveau-theatre-de-besancon/site/collections/ordered-season.php
2024-09-13 16:36:32 +02:00

29 lines
893 B
PHP

<?php
return function($kirby) {
$orderedSeason = new Pages();
foreach ($kirby->collection('current-season')->children() as $event) {
$sessions = $event->isMapadoEvent() == 'true' ? $event->remoteSessions()->toStructure() : $event->sessions()->toStructure();
$sessionDates = $sessions->map(function($session) {
return $session->date()->value();
})->data;
if (!empty($sessionDates)) {
$orderedSeason->add($event);
}
}
// Trier les événements en fonction de la date la plus proche
$orderedSeason = $orderedSeason->sortBy(function ($event) {
$sessions = $event->isMapadoEvent() == 'true' ? $event->remoteSessions()->toStructure() : $event->sessions()->toStructure();
$sessionDates = $sessions->map(function($session) {
return $session->date()->value();
})->data;
return min($sessionDates);
});
return $orderedSeason;
};