Blame view

orga.php 12.1 KB
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
1
  <h3> Organisation </h3>
97d25235   Erwan Nanrocki   ajout d un titre ...
2
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
3
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
4
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
5
6
  $time = time();
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
7
  # e_ : est
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
8
9
10
  // $e_connecte = (isset($_SESSION["connected"]) && $_SESSION["connected"]);
  $e_connecte = true; // DEBUG
  $e_modo = true; // DEBUG
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
11
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
12
13
14
15
16
17
18
19
20
21
  if ($e_connecte) {
      if ($e_modo) {
          $droits  = array('voir', 'voter', 'ajouter', 'proposer', 'annuler', 'supprimer', 'modifier', 'valider');
      } else {
          $droits = array('voir', 'voter');
      }
  } else {
      $droits = array('voir');
  }
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
22
  $lastID = 0; // TODO Est-ce que cela mérite-t-il d'exister ?
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
23
24
25
  
  class Evenement
  {
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
26
27
28
      // TODO Mettre tout en privé et utiliser __get et __set
      public $id = 0;
      public $creationTime = 0;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
29
  
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
30
31
32
33
      public $nom = "Sans nom";
      public $description = "Sans description";
      public $annule = false;
      public $valide = false;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
34
35
      public $duree = 3600;
      public $supprime = false;
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
36
37
  
      public $dates = array();
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
38
      public $datesVotes = array();
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
39
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
40
41
42
43
44
45
46
47
48
49
50
51
52
53
      function __construct($id = 0) {
          global $lastID;
          if ($id == 0) { // Nouvel évènement
              $lastID += 1;
              $this->id = $lastID;
              $this->creationTime = time();
          } else { // Évènement existant : on charge
              // TODO SQL Select
              $this->id = $lastID + 1; // TODO DEBUG SQL Récupération id
              if ($this->id > $lastID) {
                  $lastID = $this->id;
              }
              // TODO SQL Récupération du reste des propriétés
          }
1d6e24f7   Geoffrey PREUD'HOMME   [Orga] Envoi des ...
54
55
56
57
58
59
      }
  
      public function sauvegarder() {
          // TODO SQL
      }
  
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
60
      public function html() {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
61
          $html = '<li id="ev_li_'.$this->id.'" class="ev_li list-group-item';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
62
63
64
65
          if ($this->annule) {
              $html .= ' list-group-item-danger';
          }
          $html .= '">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
66
67
  
          # Titre
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
68
          $html .= '<h4 class="list-group-item-heading">'.$this->nom;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
69
          if ($this->p_annuler()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
70
              $html .= ' <button type="button" class="ev_annuler btn btn-warning"><span class="glyphicon glyphicon glyphicon-remove"></span> Annuler</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
71
          }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
72
          if ($this->p_supprimer()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
73
              $html .= ' <button type="button" class="ev_supprimer btn btn-danger"><span class="glyphicon glyphicon glyphicon-trash"></span> Supprimer</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
74
          }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
75
          $html .= '</h4>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
76
77
78
79
  
          # Description
          $html .= '<div class="panel panel-default">';
          $html .= '<div class="panel-heading">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
80
          $html .= '<h5 class="panel-title">Informations';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
81
          if ($this->p_modifier()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
82
              $html .= ' <button type="button" class="ev_modifier btn btn-default"><span class="glyphicon glyphicon-pencil"></span> Modifier</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
83
          }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
84
          $html .= '</h5>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
85
86
          $html .= '</div>';
          $html .= '<div class="panel-body">';
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
87
          $html .= '<p class="ev_description">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
88
89
90
91
          $html .= nl2br(htmlspecialchars($this->description));
          $html .= '</p>';
          // $html .= '<hr/>';
          $html .= '<p>';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
92
93
94
          $heures = floor($this->duree/3600);
          $minutes = floor($this->duree%3600/60);
          $secondes = floor($this->duree%3600%60);
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
95
          $html .= 'Durée : <span class="ev_duree">'.($heures > 0 ? '<span class="ev_duree_h">'.$heures.'</span> heure'.($heures > 1 ? 's' : '').' ' : '').($minutes > 0 ? '<span class="ev_duree_m">'.$minutes.'</span> minute'.($minutes > 1 ? 's' : '').' ' : '').($secondes > 0 ? '<span class="ev_duree_s">'.$secondes.'</span> seconde'.($secondes > 1 ? 's' : '').' ' : '').'</span><br/>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
96
          if ($this->valide) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
97
              $html .= 'Date : le <span class="ev_date">'.date('j/m/o', $this->valide).' à '.date('H:i', $this->valide).'</span><br/>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
98
99
100
          }
          $html .= '</p>';
          if ($this->annule) {
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
101
              $html .= '<p><span class="label label-danger">Annulé</span></p>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
102
103
104
105
106
107
108
  
          }
          $html .= '</div>';
          $html .= '</div>';
  
          # Dates
          if (!$this->valide && !$this->annule) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
109
              $html .= '<div class="ev_pos panel panel-default">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
110
              $html .= '<div class="panel-heading">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
111
              $html .= '<h5 class="panel-title">Dates possibles';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
112
              if ($this->p_proposer()) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
113
                  $html .= ' <button type="button" class="ev_pos_proposer btn btn-default"><span class="glyphicon glyphicon-plus"></span> Proposer une date</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
114
              }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
115
              $html .= '</h5>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
116
117
              $html .= '</div>';
              $html .= '<div class="panel-body">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
118
119
120
              if ($this->p_voter()) {
                  $html .= '<p>Sélectionnez les dates qui vous conviennent.</p>';
              }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
121
122
              $html .= '<div class="list-group">';
              $time = time();
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
123
              foreach ($this->dates as $dateIndex => $date) { // TODO À faire fonctionner (après que le reste fonctionne)
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
124
125
126
127
                  $html .= '<a href="#"class="list-group-item';
                  if ($date < $time) {
                      $html .= ' disabled';
                  }
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
128
                  $html .= '">Le <span class="ev_pos_date">'.date('j/m/o', $date).' à '.date('H:i', $date).'</span> (<span class="ev_pos_nb">'.$this->datesVotes[$dateIndex].'</span> <span class="glyphicon glyphicon-user"></span>)</a>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
129
              }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
130
131
              $html .= '</div>';
              if ($this->p_valider()) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
132
                  $html .= '<p><button type="button" class="ev_pos_valider btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Valider la date</button></p>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
133
134
135
136
137
138
139
140
              }
              $html .= '</div>';
              $html .= '</div>';
          }
  
          $html .= '</li>';
          return $html;
      }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
  
      public function passe() {
          global $time;
          if ($this->valide) {
              return $this->valide+$this->duree < $time;
          } else {
              return false;
          }
      }
  
      # p_ : Il est possible de ...
      function p_annuler() {
          global $droits;
          return in_array('annuler', $droits) && !$this->annule && !$this->passe();
      }
  
      function p_supprimer() {
          global $droits;
          return in_array('supprimer', $droits) && !$this->valide;
      }
  
      function p_modifier() {
          global $droits;
          return in_array('modifier', $droits);
      }
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
167
168
169
170
171
      function p_voter() {
          global $droits;
          return in_array('voter', $droits) && !$this->valide;
      }
  
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
172
173
      function p_proposer() {
          global $droits;
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
174
          return in_array('proposer', $droits) && !$this->valide;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
175
176
177
178
      }
  
      function p_valider() {
          global $droits;
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
179
          # TODO Et si un nombre suffisant de personnes est ok avec la date la plus disponible 
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
180
181
182
183
184
          return in_array('valider', $droits) && !$this->valide;
      }
  
  }
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
185
186
  # a_ : Récupérer depuis la base de donnée (ou pas)
  function a_evenements() {
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
187
188
      # DEBUG
      $test1 = new Evenement;
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
189
      $test1->duree = 12345;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
190
      $test1->nom = 'Évènement de test n°1';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
191
      $test1->description = 'Description de l\'évènement de test n°1';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
192
193
194
      $test1->valide = time();
      
      $test2 = new Evenement;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
195
      $test2->nom = 'Évènement de test n°2';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
196
197
      $test2->description = 'Description de l\'évènement de test n°2';
      $test2->duree = 36000;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
198
199
200
201
      $test2->valide = time();
      $test2->annule = true;
      
      $test3 = new Evenement;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
202
      $test3->nom = 'Évènement de test n°3';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
203
      $test3->description = 'Description de l\'évènement de test n°3';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
204
205
206
207
208
209
210
211
      $test3->dates[] = 1415482197;
      $test3->datesVotes[] = 42;
      $test3->dates[] = time();
      $test3->datesVotes[] = 5;
      $test3->dates[] = time()+365*24*3600;
      $test3->datesVotes[] = 1;
      
      $test4 = new Evenement;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
212
      $test4->nom = 'Évènement de test n°4';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
213
      $test4->description = 'Description de l\'évènement de test n°4';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
214
215
216
217
218
219
220
221
      $test4->dates[] = time();
      $test4->datesVotes[] = 5;
      $test4->dates[] = time()+365*24*3600;
      $test4->datesVotes[] = 1;
      $test4->dates[] = time();
      $test4->annule = true;
  
      $test5 = new Evenement;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
222
      $test5->nom = 'Évènement de test n°5';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
223
      $test5->description = 'Description de l\'évènement de test n°5';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
224
225
226
227
228
      $test5->dates[] = time();
      $test5->datesVotes[] = 0;
      $test5->supprime = true;
  
      $test6 = new Evenement;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
229
      $test6->nom = 'Évènement de test n°6';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
230
      $test6->description = 'Description de l\'évènement de test n°6';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
231
232
233
234
235
      $test6->valide = 1415452197;
  
      return array($test1, $test2, $test3, $test4, $test5, $test6);
  }
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
236
  $evenements = a_evenements();
1d6e24f7   Geoffrey PREUD'HOMME   [Orga] Envoi des ...
237
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
238
239
240
241
242
243
244
245
  function a_evenement($id) {
      global $evenements;
      foreach ($evenements as $evenement) {
          if ($evenement->id == $id) {
              return $evenement;
          }
      }
  }
1d6e24f7   Geoffrey PREUD'HOMME   [Orga] Envoi des ...
246
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
247
  # TRAITEMENT DES DONNEES POST
1d6e24f7   Geoffrey PREUD'HOMME   [Orga] Envoi des ...
248
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
  function mauvaiseRequete($code = 0) {
      echo '<div class="alert alert-danger" role="alert">Le serveur n\'a pas compris votre requête <small>(code d\'erreur n°'.$code.')</small>.</div>';
  }
  
  function bonneRequete($message = 'Action correctement effectuée.') {
      echo '<div class="alert alert-success" role="alert">'.$message.'</div>';
  }
  
  if (isset($_POST['action'])) {
  
      switch ($_POST['action']) {
          case 'modifier':
              if (isset($_POST['id']) && isset($_POST['description']) && isset($_POST['duree'])) {
                  if ($evenement = a_evenement($_POST['id'])) {
                      if (($duree = intval($_POST['duree'])) >= 0) {
                          $evenement->description = $_POST['description']; // TODO Protection nécessaire pour SQL
                          $evenement->duree = $duree;
                          bonneRequete('Élement correctement modifié.');
                      } else {
                          mauvaiseRequete(4);
                      }
                  } else {
                      mauvaiseRequete(3);
                  }
              } else {
                  mauvaiseRequete(2);
              }
              break;
  
          case 'annuler':
              if (isset($_POST['id'])) {
                  if ($evenement = a_evenement($_POST['id'])) {
                      $evenement->annule = true;
                      bonneRequete('Évènement annulé.');
                  } else {
                      mauvaiseRequete(3);
                  }
              } else {
                  mauvaiseRequete(2);
              }
              break;
  
          case 'supprimer':
              if (isset($_POST['id'])) {
                  if ($evenement = a_evenement($_POST['id'])) {
                      $evenement->supprime = true;
                      bonneRequete('Évènement supprimé.');
                  } else {
                      mauvaiseRequete(3);
                  }
              } else {
                  mauvaiseRequete(2);
              }
              break;
          
          default:
              mauvaiseRequete(1);
              break;
      }
1d6e24f7   Geoffrey PREUD'HOMME   [Orga] Envoi des ...
308
309
310
311
312
  }
  
  
  # AFFICHAGE DE LA PAGE
  
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
313
  # Tri des évènements
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
314
315
316
317
  $evenementsPlanifies = array();
  $evenementsAPlanifier = array();
  $evenementsPasses = array();
  
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
318
319
320
321
322
323
324
325
326
327
328
329
  foreach ($evenements as $evenement) {
      if (!$evenement->supprime) {
          if ($evenement->valide) {
              if ($evenement->passe()) {
                  $evenementsPasses[] = $evenement;
              } else {
                  $evenementsPlanifies[] = $evenement;
              }
          } else {
              $evenementsAPlanifier[] = $evenement;
          }
      }
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
330
331
  }
  
3fde9691   Geoffrey PREUD'HOMME   [Orga] Interpréta...
332
  # Affichage
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
333
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
334
335
336
337
338
339
340
341
342
  if (!$e_connecte) {
  ?>
  <div class="alert alert-warning" role="alert">Connectez-vous afin de pouvoir agir sur les évènements.</div>
  <?php    
  }
  ?>
  <?php
  if (in_array('voir', $droits)) {
  ?>
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
343
344
  <h3>Évènements plannifiés <?php if (in_array('ajouter', $droits)) { ?><button id="ev_ajouter_fixe" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Ajouter un évènement avec une date fixée</button><?php } ?></h3>
  <ul id="ev_ul_planifies" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
345
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
346
347
348
  foreach ($evenementsPlanifies as $evenement) {
      echo $evenement->html();
  }
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
349
  ?>
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
350
351
  </ul>
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
352
  
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
353
354
  <h3>Évènements à plannifier <?php if (in_array('ajouter', $droits)) { ?><button id="ev_ajouter_choix" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Ajouter un évènement avec une date à choisir</button><?php } ?></h3>
  <ul id="ev_ul_aplanifier" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
355
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
356
357
358
  foreach ($evenementsAPlanifier as $evenement) {
      echo $evenement->html();
  }
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
359
360
361
362
  ?>
  </ul>
  
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
363
  <h3>Évènements passés</h3>
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
364
  <ul id="ev_ul_passes" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
365
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
366
367
368
369
  foreach ($evenementsPasses as $evenement) {
      echo $evenement->html();
  }
  ?>
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
370
371
  </ul>
  
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
372
  <script type="text/javascript" src="js/orga.js"></script>
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
373
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
374
375
376
377
378
379
380
  <?php
  } else {
  ?>
  <div class="alert alert-danger" role="alert">Vous ne pouvez pas voir les évènements.</div>
  <?php
  }
  ?>