summaryrefslogtreecommitdiff
path: root/src/load-events.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/load-events.php')
-rw-r--r--src/load-events.php108
1 files changed, 66 insertions, 42 deletions
diff --git a/src/load-events.php b/src/load-events.php
index b997fce..5c71137 100644
--- a/src/load-events.php
+++ b/src/load-events.php
@@ -1,43 +1,67 @@
1<?php 1<?php
2$events = [ 2// réception de deux paramètres GET: 'start' et 'end'
3 [ 3
4 'id' => 1, 4if(isset($_GET['start']) && isset($_GET['end']) && empty($_POST)){
5 'title' => 'Évènement1', 5 // bornes début et fin du calendrier affiché à l'heure locale
6 'start' => '2025-06-03T05:00:00Z', // Z indique que l'heure est en UTC 6 // noter que la vue "planning" est similaire à la vue "semaine"
7 'end' => '2025-06-03T09:00:00Z', 7 $start = new DateTime($_GET['start']);
8 'allDay' => false, 8 $end = new DateTime($_GET['end']);
9 'color' => '#ffa500', // couleur hexa, éviter les couleurs CSS qui ne fonctionnent pas dans value="" en HTML 9 $start->setTimezone(new DateTimeZone('UTC'));
10 //'url' => 'https://dev.nageurs-bigoudens.fr', // comportement: https://fullcalendar.io/docs/eventClick 10 $end->setTimezone(new DateTimeZone('UTC'));
11 'description' => 'blablabla', 11
12 ], 12 // recherche des évènement en BDD avec ceci:
13 [ 13 // WHERE end >= :start AND start <= :end
14 'id' => 2, 14 // on prend les évènements se finissant après le début
15 'title' => 'Évènement2', 15 // ou commençant avant la fin de la fourchette
16 'start' => '2025-06-06T08:00:00Z', 16
17 'end' => '2025-06-07T08:00:00Z', 17 // affichage format ISO à l'heure UTC
18 'allDay' => false, 18 //$date->format('Y-m-d\TH:i:s\Z');
19 'color' => '#e01b24', 19
20 'description' => 'truc machin', 20 // chatgpt suggère l'utilisation d'un DTO
21 ], 21 // => une classe de données simple et tout "public" pour des évènements obtenables autant depuis la BDD que de fichiers .ics par exemple
22 [ 22
23 'id' => 3, 23 $events = [
24 'title' => 'Évènement3', 24 [
25 'start' => '2025-06-08', 25 'id' => 1,
26 'end' => '2025-06-09', 26 'title' => 'Évènement1',
27 'allDay' => true, // pas d'heure 27 'start' => '2025-06-03T05:00:00Z', // Z indique que l'heure est en UTC
28 'color' => '#008000', 28 'end' => '2025-06-03T09:00:00Z',
29 'description' => 'ça va chier', 29 'allDay' => false,
30 ], 30 'color' => '#ffa500', // couleur hexa, éviter les couleurs CSS qui ne fonctionnent pas dans value="" en HTML
31 // provoque une erreur, si allDay la fin ne peut être égale au début 31 //'url' => 'https://dev.nageurs-bigoudens.fr', // comportement: https://fullcalendar.io/docs/eventClick
32 /*[ 32 'description' => 'blablabla',
33 'id' => 4, 33 ],
34 'title' => 'Évènement4', 34 [
35 'start' => '2025-06-09', 35 'id' => 2,
36 'end' => '2025-06-09', 36 'title' => 'Évènement2',
37 'allDay' => true, 37 'start' => '2025-06-06T08:00:00Z',
38 'color' => '#1a5fb4', 38 'end' => '2025-06-07T08:00:00Z',
39 ],*/ 39 'allDay' => false,
40]; 40 'color' => '#e01b24',
41 41 'description' => 'truc machin',
42header('Content-Type: application/json'); 42 ],
43echo json_encode($events); 43 [
44 'id' => 3,
45 'title' => 'Évènement3',
46 'start' => '2025-06-08',
47 'end' => '2025-06-09',
48 'allDay' => true, // pas d'heure
49 'color' => '#008000',
50 'description' => 'ça va chier',
51 ],
52 // provoque une erreur, si allDay la fin ne peut être égale au début
53 /*[
54 'id' => 4,
55 'title' => 'Évènement4',
56 'start' => '2025-06-09',
57 'end' => '2025-06-09',
58 'allDay' => true,
59 'color' => '#1a5fb4',
60 ],*/
61 ];
62
63 header('Content-Type: application/json');
64 echo json_encode($events);
65}
66
67