dolibarr  17.0.4
choix_date.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2013 Laurent Destailleur <eldy@users.sourceforge.net>
3  * Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17  */
18 
25 // Load Dolibarr environment
26 require '../../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
28 require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
29 require_once DOL_DOCUMENT_ROOT."/opensurvey/lib/opensurvey.lib.php";
30 
31 // Security check
32 if (!$user->rights->opensurvey->write) {
34 }
35 
36 // Survey type is DATE
37 $_SESSION["formatsondage"] = "D";
38 
39 $erreur = false;
40 $erreurNbchoice = 0;
41 
42 /*
43  * Actions
44  */
45 
46 // Insert survey
47 if (GETPOST('confirmation')) {
48  // We save hours entered
49  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('nbrecaseshoraires', $_SESSION) === true) {
50  $nbofchoice = count($_SESSION["totalchoixjour"]);
51  $errheure = array();
52 
53  if ($nbofchoice * $_SESSION["nbrecaseshoraires"] > 200) {
54  setEventMessages($langs->trans("ErrorFieldTooLong"), null, 'errors');
55  $erreurNb++;
56  } else {
57  for ($i = 0; $i < $nbofchoice; $i++) {
58  // Show hours choices
59  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
60  $horairesi = GETPOST("horaires".$i);
61  $_SESSION["horaires$i"][$j] = $horairesi[$j];
62 
63  $tmphorairesi = GETPOST('horaires'.$i, 'array');
64 
65  if (!is_array($tmphorairesi)) {
66  $errheure[$i][$j] = true;
67  $erreur = true;
68  continue;
69  }
70 
71  // A range like 8:00-11:00
72  $creneaux = array();
73  $heures = array();
74  if (preg_match("/(\d{1,2}:\d{2})-(\d{1,2}:\d{2})/", $tmphorairesi[$j], $creneaux)) {
75  //on recupere les deux parties du preg_match qu'on redécoupe autour des ":"
76  $debutcreneau = explode(":", $creneaux[1]);
77  $fincreneau = explode(":", $creneaux[2]);
78 
79  //comparaison des heures de fin et de debut
80  //si correctes, on entre les données dans la variables de session
81  if ($debutcreneau[0] < 24 && $fincreneau[0] < 24 && $debutcreneau[1] < 60 && $fincreneau[1] < 60 && ($debutcreneau[0] < $fincreneau[0] || ($debutcreneau[0] == $fincreneau[0] && $debutcreneau[1] < $fincreneau[1]))) {
82  $_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
83  } else { //sinon message d'erreur et nettoyage de la case
84  $errheure[$i][$j] = true;
85  $erreur = true;
86  }
87  } elseif (preg_match(";^(\d{1,2}h\d{0,2})-(\d{1,2}h\d{0,2})$;i", $tmphorairesi[$j], $creneaux)) { //si c'est un creneau type 8h00-11h00
88  //on recupere les deux parties du preg_match qu'on redécoupe autour des "H"
89  $debutcreneau = preg_split("/h/i", $creneaux[1]);
90  $fincreneau = preg_split("/h/i", $creneaux[2]);
91 
92  //comparaison des heures de fin et de debut
93  //si correctes, on entre les données dans la variables de session
94  if ($debutcreneau[0] < 24 && $fincreneau[0] < 24 && $debutcreneau[1] < 60 && $fincreneau[1] < 60 && ($debutcreneau[0] < $fincreneau[0] || ($debutcreneau[0] == $fincreneau[0] && $debutcreneau[1] < $fincreneau[1]))) {
95  $_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
96  } else { //sinon message d'erreur et nettoyage de la case
97  $errheure[$i][$j] = true;
98  $erreur = true;
99  }
100  } elseif (preg_match(";^(\d{1,2}):(\d{2})$;", $tmphorairesi[$j], $heures)) { //si c'est une heure simple type 8:00
101  //si valeures correctes, on entre les données dans la variables de session
102  if ($heures[1] < 24 && $heures[2] < 60) {
103  $_SESSION["horaires$i"][$j] = $heures[0];
104  } else { //sinon message d'erreur et nettoyage de la case
105  $errheure[$i][$j] = true;
106  $erreur = true;
107  }
108  } elseif (preg_match(";^(\d{1,2})h(\d{0,2})$;i", $tmphorairesi[$j], $heures)) { //si c'est une heure encore plus simple type 8h
109  //si valeures correctes, on entre les données dans la variables de session
110  if ($heures[1] < 24 && $heures[2] < 60) {
111  $_SESSION["horaires$i"][$j] = $heures[0];
112  } else { //sinon message d'erreur et nettoyage de la case
113  $errheure[$i][$j] = true;
114  $erreur = true;
115  }
116  } elseif (preg_match(";^(\d{1,2})-(\d{1,2})$;", $tmphorairesi[$j], $heures)) { //si c'est un creneau simple type 8-11
117  //si valeures correctes, on entre les données dans la variables de session
118  if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
119  $_SESSION["horaires$i"][$j] = $heures[0];
120  } else { //sinon message d'erreur et nettoyage de la case
121  $errheure[$i][$j] = true;
122  $erreur = true;
123  }
124  } elseif (preg_match(";^(\d{1,2})h-(\d{1,2})h$;", $tmphorairesi[$j], $heures)) { //si c'est un creneau H type 8h-11h
125  //si valeures correctes, on entre les données dans la variables de session
126  if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
127  $_SESSION["horaires$i"][$j] = $heures[0];
128  } else { //sinon message d'erreur et nettoyage de la case
129  $errheure[$i][$j] = true;
130  $erreur = true;
131  }
132  } elseif ($tmphorairesi[$j] == "") { //Si la case est vide
133  unset($_SESSION["horaires$i"][$j]);
134  } else { //pour tout autre format, message d'erreur
135  $errheure[$i][$j] = true;
136  $erreur = true;
137  }
138 
139  if (issetAndNoEmpty('horaires'.$i, $_SESSION) === false || issetAndNoEmpty($j, $_SESSION['horaires'.$i]) === false) {
140  if (issetAndNoEmpty('horaires'.$i, $_SESSION) === true) {
141  $_SESSION["horaires$i"][$j] = '';
142  } else {
143  $_SESSION["horaires$i"] = array();
144  $_SESSION["horaires$i"][$j] = '';
145  }
146  }
147  }
148 
149  if ($_SESSION["horaires$i"][0] == "" && $_SESSION["horaires$i"][1] == "" && $_SESSION["horaires$i"][2] == "" && $_SESSION["horaires$i"][3] == "" && $_SESSION["horaires$i"][4] == "") {
150  $choixdate .= ",";
151  $choixdate .= $_SESSION["totalchoixjour"][$i];
152  } else {
153  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
154  if ($_SESSION["horaires$i"][$j] != "") {
155  $choixdate .= ",";
156  $choixdate .= $_SESSION["totalchoixjour"][$i];
157  $choixdate .= "@";
158  // On remplace la virgule et l'arobase pour ne pas avoir de problème par la suite
159  $choixdate .= str_replace(array(',', '@'), array('&#44;', '&#64;'), $_SESSION["horaires$i"][$j]);
160  }
161  }
162  }
163  }
164  }
165 
166 
167  if (!empty($errheure)) {
168  setEventMessages($langs->trans("ErrorBadFormat"), null, 'errors');
169  }
170  }
171 
172  //If just one day and no other time options, error message
173  $tmphoraires0 = GETPOST('horaires0', 'array');
174  if (count($_SESSION["totalchoixjour"]) == "1" && $tmphoraires0[0] == "" && $tmphoraires0[1] == "" && $tmphoraires0[2] == "" && $tmphoraires0[3] == "" && $tmphoraires0[4] == "") {
175  setEventMessages($langs->trans("MoreChoices"), null, 'errors');
176  $erreur = true;
177  }
178 
179  // Add survey into database
180  if (!$erreur && $erreurNb == 0) {
181  $_SESSION["toutchoix"] = substr("$choixdate", 1);
182 
183  ajouter_sondage();
184  }
185 }
186 
187 // Reset days
188 if (GETPOST('reset')) {
189  $nbofchoice = count($_SESSION["totalchoixjour"]);
190  for ($i = 0; $i < $nbofchoice; $i++) {
191  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
192  unset($_SESSION["horaires$i"][$j]);
193  }
194  }
195 
196  unset($_SESSION["totalchoixjour"]);
197  unset($_SESSION["nbrecaseshoraires"]);
198 }
199 
200 
201 
202 /*
203  * View
204  */
205 
206 if (!isset($_SESSION['description']) && !isset($_SESSION['mail'])) {
207  dol_print_error('', $langs->trans('ErrorOpenSurveyFillFirstSection'));
208  exit;
209 }
210 
211 $arrayofjs = array();
212 $arrayofcss = array('/opensurvey/css/style.css');
213 llxHeader('', $langs->trans("OpenSurvey"), "", '', 0, 0, $arrayofjs, $arrayofcss);
214 
215 //nombre de cases par défaut
216 if (!isset($_SESSION["nbrecaseshoraires"])) {
217  $_SESSION["nbrecaseshoraires"] = 5;
218 } elseif (GETPOST('ajoutcases') && $_SESSION["nbrecaseshoraires"] == 5) {
219  $_SESSION["nbrecaseshoraires"] = 10;
220 }
221 
222 //valeurs de la date du jour actuel
223 $jourAJ = date("j");
224 $moisAJ = date("n");
225 $anneeAJ = date("Y");
226 
227 // Initialisation des jour, mois et année
228 if (!isset($_SESSION['jour'])) {
229  $_SESSION['jour'] = date('j');
230 }
231 if (!isset($_SESSION['mois'])) {
232  $_SESSION['mois'] = date('n');
233 }
234 if (!isset($_SESSION['annee'])) {
235  $_SESSION['annee'] = date('Y');
236 }
237 
238 //mise a jour des valeurs de session si bouton retour a aujourd'hui
239 if (!issetAndNoEmpty('choixjourajout') && !issetAndNoEmpty('choixjourretrait') && (issetAndNoEmpty('retourmois') || issetAndNoEmpty('retourmois_x'))) {
240  $_SESSION["jour"] = date("j");
241  $_SESSION["mois"] = date("n");
242  $_SESSION["annee"] = date("Y");
243 }
244 
245 //mise a jour des valeurs de session si mois avant
246 if (issetAndNoEmpty('moisavant_x') || issetAndNoEmpty('moisavant')) {
247  if ($_SESSION["mois"] == 1) {
248  $_SESSION["mois"] = 12;
249  $_SESSION["annee"] = $_SESSION["annee"] - 1;
250  } else {
251  $_SESSION["mois"] -= 1;
252  }
253 
254  //On sauvegarde les heures deja entrées
255  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
256  $nbofchoice = count($_SESSION["totalchoixjour"]);
257  for ($i = 0; $i < $nbofchoice; $i++) {
258  //affichage des 5 cases horaires
259  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
260  $horairesi = GETPOST("horaires".$i);
261  $_SESSION["horaires$i"][$j] = $horairesi[$j];
262  }
263  }
264  }
265 }
266 
267 //mise a jour des valeurs de session si mois apres
268 if (issetAndNoEmpty('moisapres_x') || issetAndNoEmpty('moisapres')) {
269  if ($_SESSION["mois"] == 12) {
270  $_SESSION["mois"] = 1;
271  $_SESSION["annee"] += 1;
272  } else {
273  $_SESSION["mois"] += 1;
274  }
275 
276  //On sauvegarde les heures deja entrées
277  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
278  $nbofchoice = count($_SESSION["totalchoixjour"]);
279  for ($i = 0; $i < $nbofchoice; $i++) {
280  //affichage des 5 cases horaires
281  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
282  $horairesi = GETPOST("horaires".$i);
283  $_SESSION["horaires$i"][$j] = $horairesi[$j];
284  }
285  }
286  }
287 }
288 
289 //mise a jour des valeurs de session si annee avant
290 if (issetAndNoEmpty('anneeavant_x') || issetAndNoEmpty('anneeavant')) {
291  $_SESSION["annee"] -= 1;
292 
293  //On sauvegarde les heures deja entrées
294  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
295  $nbofchoice = count($_SESSION["totalchoixjour"]);
296  for ($i = 0; $i < $nbofchoice; $i++) {
297  //affichage des 5 cases horaires
298  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
299  $horairesi = GETPOST("horaires".$i);
300  $_SESSION["horaires$i"][$j] = $horairesi[$j];
301  }
302  }
303  }
304 }
305 
306 //mise a jour des valeurs de session si annee apres
307 if (issetAndNoEmpty('anneeapres_x') || issetAndNoEmpty('anneeapres')) {
308  $_SESSION["annee"] += 1;
309 
310  //On sauvegarde les heures deja entrées
311  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
312  $nbofchoice = count($_SESSION["totalchoixjour"]);
313  for ($i = 0; $i < $nbofchoice; $i++) {
314  //affichage des 5 cases horaires
315  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
316  $horairesi = GETPOST("horaires".$i);
317  $_SESSION["horaires$i"][$j] = $horairesi[$j];
318  }
319  }
320  }
321 }
322 
323 //valeurs du nombre de jour dans le mois et du premier jour du mois
324 $nbrejourmois = date("t", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"]));
325 $premierjourmois = date("N", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"])) - 1;
326 
327 //traduction de la valeur du mois
328 if (is_integer($_SESSION["mois"]) && $_SESSION["mois"] > 0 && $_SESSION["mois"] < 13) {
329  $motmois = dol_print_date(mktime(0, 0, 0, $_SESSION["mois"], 10), '%B');
330 } else {
331  $motmois = dol_print_date(dol_now(), '%B');
332 }
333 
334 
335 //Debut du formulaire et bandeaux de tete
336 print '<form name="formulaire" action="" method="POST">'."\n";
337 print '<input type="hidden" name="token" value="'.newToken().'">';
338 
339 print load_fiche_titre($langs->trans("CreatePoll").' (2 / 2)');
340 
341 //affichage de l'aide pour les jours
342 print '<div class="bodydate">'."\n";
343 print $langs->trans("OpenSurveyStep2")."\n";
344 print '</div>'."\n";
345 
346 //debut du tableau qui affiche le calendrier
347 print '<div class="corps">'."\n";
348 print '<div class="center">'."\n";
349 print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
350 print '<tr><td><input type="image" name="anneeavant" value="<<" src="../img/rewind.png"></td><td><input type="image" name="moisavant" value="<" src="../img/previous.png"></td>';
351 print '<td width="150px" align="center"> '.$motmois.' '.$_SESSION["annee"].'<br>';
352 print '<input type="image" name="retourmois" alt="'.dol_escape_htmltag($langs->trans("BackToCurrentMonth")).'" title="'.dol_escape_htmltag($langs->trans("BackToCurrentMonth")).'" value="" src="'.img_picto('', 'refresh', '', 0, 1).'">';
353 print '</td><td><input type="image" name="moisapres" value=">" src="../img/next.png"></td>';
354 print '<td><input type="image" name="anneeapres" value=">>" src="../img/fforward.png"></td><td></td><td></td><td></td><td></td><td></td><td>';
355 print '</td></tr>'."\n";
356 print '</table>'."\n";
357 print '</div>'."\n";
358 
359 print '<div class="center calendrier">'."\n";
360 print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
361 print '<tr>'."\n";
362 
363 //affichage des jours de la semaine en haut du tableau
364 for ($i = 0; $i < 7; $i++) {
365  print '<td align="center" class="joursemaine">'.dol_print_date(mktime(0, 0, 0, 0, $i, 10), '%A').'</td>';
366 }
367 
368 print '</tr>'."\n";
369 
370 //ajout d'une entrée dans la variable de session qui contient toutes les dates
371 if (issetAndNoEmpty('choixjourajout')) {
372  if (!isset($_SESSION["totalchoixjour"])) {
373  $_SESSION["totalchoixjour"] = array();
374  }
375 
376  // Test pour éviter les doublons dans la variable qui contient toutes les dates
377  $journeuf = true;
378  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('choixjourajout') === true) {
379  $nbofchoice = count($_SESSION["totalchoixjour"]);
380  for ($i = 0; $i < $nbofchoice; $i++) {
381  $choixjourajout = GETPOST("choixjourajout");
382  if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"])) {
383  $journeuf = false;
384  }
385  }
386  }
387 
388  // Si le test est passé, alors on insere la valeur dans la variable de session qui contient les dates
389  if ($journeuf && issetAndNoEmpty('choixjourajout') === true) {
390  $choixjourajout = GETPOST("choixjourajout");
391  array_push($_SESSION["totalchoixjour"], dol_mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"]));
392  sort($_SESSION["totalchoixjour"]);
393  $cle = array_search(dol_mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]);
394 
395  //On sauvegarde les heures deja entrées
396  for ($i = 0; $i < $cle; $i++) {
397  $horairesi = GETPOST("horaires".$i);
398  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
399  if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
400  $_SESSION["horaires$i"][$j] = $horairesi[$j];
401  }
402  }
403  }
404 
405  $nbofchoice = count($_SESSION["totalchoixjour"]);
406  for ($i = $cle; $i < $nbofchoice; $i++) {
407  $k = $i + 1;
408  if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
409  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
410  $horairesi = GETPOST("horaires".$i);
411  $_SESSION["horaires$i"][$j] = $horairesi[$j];
412  }
413  }
414  }
415 
416  unset($_SESSION["horaires$cle"]);
417  }
418 }
419 
420 //retrait d'une entrée dans la variable de session qui contient toutes les dates
421 if (issetAndNoEmpty('choixjourretrait')) {
422  //On sauvegarde les heures deja entrées
423  $nbofchoice = count($_SESSION["totalchoixjour"]);
424  for ($i = 0; $i < $nbofchoice; $i++) {
425  //affichage des 5 cases horaires
426  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
427  $horairesi = GETPOST("horaires".$i);
428  $_SESSION["horaires$i"][$j] = $horairesi[$j];
429  }
430  }
431 
432  for ($i = 0; $i < $nbofchoice; $i++) {
433  $choixjourretrait = GETPOST('choixjourretrait');
434  if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $choixjourretrait[0], $_SESSION["annee"])) {
435  for ($j = $i; $j < $nbofchoice; $j++) {
436  $k = $j + 1;
437  $_SESSION["horaires$j"] = $_SESSION["horaires$k"];
438  }
439 
440  array_splice($_SESSION["totalchoixjour"], $i, 1);
441  }
442  }
443 }
444 
445 //report des horaires dans toutes les cases
446 if (issetAndNoEmpty('reporterhoraires')) {
447  $_SESSION["horaires0"] = GETPOST("horaires0");
448  $nbofchoice = count($_SESSION["totalchoixjour"]);
449  for ($i = 0; $i < $nbofchoice; $i++) {
450  $j = $i + 1;
451  $_SESSION["horaires$j"] = $_SESSION["horaires$i"];
452  }
453 }
454 
455 //report des horaires dans toutes les cases
456 if (issetAndNoEmpty('resethoraires')) {
457  $nbofchoice = count($_SESSION["totalchoixjour"]);
458  for ($i = 0; $i < $nbofchoice; $i++) {
459  unset($_SESSION["horaires$i"]);
460  }
461 }
462 
463 // affichage du calendrier
464 print '<tr>'."\n";
465 
466 for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) {
467  $numerojour = $i - $premierjourmois + 1;
468 
469  // On saute a la ligne tous les 7 jours
470  if (($i % 7) == 0 && $i != 0) {
471  print '</tr><tr>'."\n";
472  }
473 
474  // On affiche les jours precedants en gris et incliquables
475  if ($i < $premierjourmois) {
476  print '<td class="avant"></td>'."\n";
477  } else {
478  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
479  $nbofchoice = count($_SESSION["totalchoixjour"]);
480  for ($j = 0; $j < $nbofchoice; $j++) {
481  // show red buttons
482  if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) {
483  print '<td align="center" class="choisi"><input type="submit" class="bouton OFF" name="choixjourretrait[]" value="'.$numerojour.'"></td>'."\n";
484  $dejafait = $numerojour;
485  }
486  }
487  }
488 
489  // If no red button, we show green or grey button with number of day
490  if (isset($dejafait) === false || $dejafait != $numerojour) {
491  // green button
492  if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) {
493  print '<td align="center" class="libre"><input type="submit" class="bouton ON" name="choixjourajout[]" value="'.$numerojour.'"></td>'."\n";
494  } else {
495  // grey button
496  print '<td align="center" class="avant">'.$numerojour.'</td>'."\n";
497  }
498  }
499  }
500 }
501 
502 //fin du tableau
503 print '</tr>'."\n";
504 print '</table>'."\n";
505 print '</div></div>'."\n";
506 
507 print '<div class="bodydate"><div class="center">'."\n";
508 
509 // affichage de tous les jours choisis
510 if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) {
511  //affichage des jours
512  print '<br>'."\n";
513  print '<div align="left">';
514  print '<strong>'.$langs->trans("SelectedDays").':</strong>'."<br>\n";
515  print $langs->trans("SelectDayDesc")."<br>\n";
516  print '</div><br>';
517 
518  print '<table>'."\n";
519  print '<tr>'."\n";
520  print '<td></td>'."\n";
521 
522  for ($i = 0; $i < $_SESSION["nbrecaseshoraires"]; $i++) {
523  $j = $i + 1;
524  print '<td classe="somme"><div class="center">'.$langs->trans("Time").' '.$j.'</div></td>'."\n";
525  }
526 
527  if ($_SESSION["nbrecaseshoraires"] < 10) {
528  print '<td classe="somme"><input type="image" name="ajoutcases" src="../img/add-16.png"></td>'."\n";
529  }
530 
531  print '</tr>'."\n";
532 
533  //affichage de la liste des jours choisis
534  $nbofchoice = count($_SESSION["totalchoixjour"]);
535 
536  for ($i = 0; $i < $nbofchoice; $i++) {
537  print '<tr>'."\n";
538  print '<td>'.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' ('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')</td>';
539 
540  //affichage des cases d'horaires
541  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
542  //si on voit une erreur, le fond de la case est rouge
543  if (isset($errheure[$i][$j]) && $errheure[$i][$j]) {
544  print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'" style="background-color:#FF6666;"></td>'."\n";
545  } else {
546  //sinon la case est vide normalement
547  print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'"></td>'."\n";
548  }
549  }
550  print '</tr>'."\n";
551  }
552 
553  print '</table>'."\n";
554 
555  // show buttons to cancel, delete days or create survey
556  print '<table>'."\n";
557  print '<tr>'."\n";
558  print '<td><input type="submit" class="button" name="reset" value="'.dol_escape_htmltag($langs->trans("RemoveAllDays")).'"></td><td><input type="submit" class="button" name="reporterhoraires" value="'.dol_escape_htmltag($langs->trans("CopyHoursOfFirstDay")).'"></td><td><input type="submit" class="button" name="resethoraires" value="'.dol_escape_htmltag($langs->trans("RemoveAllHours")).'"></td></tr>'."\n";
559  print'<tr><td colspan="3"><br><br></td></tr>'."\n";
560  print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="confirmation" value="'.$langs->trans("CreatePoll").'"></td></tr>'."\n";
561  print '</table>'."\n";
562 }
563 
564 print '</tr>'."\n";
565 print '</table>'."\n";
566 print '<a name=bas></a>'."\n";
567 //fin du formulaire et bandeau de pied
568 print '</form>'."\n";
569 //bandeau de pied
570 print '<br><br><br><br>'."\n";
571 print '</div></div>'."\n";
572 
573 // End of page
574 llxFooter();
575 $db->close();
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.