add calendar strip date infos

This commit is contained in:
isUnknown 2024-07-29 17:42:30 +02:00
parent df28408af3
commit d4bd4113f1
3 changed files with 69 additions and 20 deletions

View file

@ -7,6 +7,15 @@ function getCorrespondingSeasons($request) {
);
}
function getTimeDifference($start, $end) {
$start = new DateTime($start);
$end = new DateTime($end);
$difference = $end->diff($start);
return $difference->h . "h" . $difference->i;
}
return [
'pattern' => '/month-dates.json',
'method' => 'POST',
@ -20,18 +29,24 @@ return [
$correspondingSeasons = getCorrespondingSeasons($request);
foreach ($correspondingSeasons->children() as $event) {
$eventInfos = [
"title" => $event->title()->value(),
"place" => $event->place()->value(),
"authors" => $event->authors()->value()
];
if ($event->isMapadoEvent() == 'false') {
foreach ($event->sessions()->toStructure() as $session) {
$sessionMonth = $session->date()->toDate('Y-m');
if ($sessionMonth === $requestMonth) {
$day = $session->date()->toDate('d');
$dates[$day][] = [
$day = intval($session->date()->toDate('d'));
$dates[$day][] = array_merge($eventInfos, [
"day" => $day,
"title" => $event->title()->value(),
"time" => $session->time()->value(),
"duration" => $event->duration()->value(),
];
]);
};
}
}
@ -42,6 +57,8 @@ return [
"requestParams" => [],
"requestFields" => [
["name" => "title"],
["name" => "address"],
["name" => "slug"],
[
"name" => "eventDateList",
"subfields" => [
@ -55,18 +72,27 @@ return [
$mapadoEvent = fetchMapadoEvent($request);
$duration = null;
foreach ($mapadoEvent->eventDateList as $session) {
$sessionMonth = substr($session->startDate, 0, 7);
if ($sessionMonth === $requestMonth) {
$day = intval(substr($session->startDate, 8, 2));
$time = substr($session->startDate, 11, 5);
$startTime = substr($session->startDate, 11, 5);
$eventDateId = explode('/', $session->{'@id'});
$eventDateId = $eventDateId[count($eventDateId) - 1];
$dates[$day][] = [
if (isset($session->endDate) && !$duration) {
$endTime = substr($session->endDate, 11 , 5);
$duration = getTimeDifference($startTime, $endTime);
}
$dates[$day][] = array_merge($eventInfos, [
"day" => $day,
"title" => $event->title()->value(),
"time" => str_replace(':', 'h', $time)
];
"time" => str_replace(':', 'h', $startTime),
"duration" => $duration,
"ticketingUrl" => 'https://cdn-besancon.mapado.com/event/' . $mapadoEvent->slug . '?eventDate=' . $eventDateId
]);
}
}