dolibarr  18.0.6
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  unset($_SESSION["nbrecaseshoraires"]);
183 
184  ajouter_sondage();
185  }
186 }
187 
188 // Reset days
189 if (GETPOST('reset')) {
190  $nbofchoice = count($_SESSION["totalchoixjour"]);
191  for ($i = 0; $i < $nbofchoice; $i++) {
192  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
193  unset($_SESSION["horaires$i"][$j]);
194  }
195  }
196 
197  unset($_SESSION["totalchoixjour"]);
198  unset($_SESSION["nbrecaseshoraires"]);
199 }
200 
201 
202 
203 /*
204  * View
205  */
206 
207 if (!isset($_SESSION['description']) && !isset($_SESSION['mail'])) {
208  dol_print_error('', $langs->trans('ErrorOpenSurveyFillFirstSection'));
209  exit;
210 }
211 
212 $arrayofjs = array();
213 $arrayofcss = array('/opensurvey/css/style.css');
214 llxHeader('', $langs->trans("OpenSurvey"), "", '', 0, 0, $arrayofjs, $arrayofcss);
215 
216 //nombre de cases par défaut
217 if (!isset($_SESSION["nbrecaseshoraires"])) {
218  $_SESSION["nbrecaseshoraires"] = 5;
219 } elseif ((GETPOST('ajoutcases') || GETPOST("ajoutcases_y")) && $_SESSION["nbrecaseshoraires"] == 5) {
220  $_SESSION["nbrecaseshoraires"] = 10;
221  //On sauvegarde les heures deja entrées
222  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
223  $nbofchoice = count($_SESSION["totalchoixjour"]);
224  for ($i = 0; $i < $nbofchoice; $i++) {
225  //affichage des 5 cases horaires
226  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
227  $horairesi = GETPOST("horaires".$i);
228  $_SESSION["horaires$i"][$j] = $horairesi[$j];
229  }
230  }
231  }
232 }
233 
234 
235 //valeurs de la date du jour actuel
236 $jourAJ = date("j");
237 $moisAJ = date("n");
238 $anneeAJ = date("Y");
239 
240 // Initialisation des jour, mois et année
241 if (!isset($_SESSION['jour'])) {
242  $_SESSION['jour'] = date('j');
243 }
244 if (!isset($_SESSION['mois'])) {
245  $_SESSION['mois'] = date('n');
246 }
247 if (!isset($_SESSION['annee'])) {
248  $_SESSION['annee'] = date('Y');
249 }
250 
251 //mise a jour des valeurs de session si bouton retour a aujourd'hui
252 if (!issetAndNoEmpty('choixjourajout') && !issetAndNoEmpty('choixjourretrait') && (issetAndNoEmpty('retourmois') || issetAndNoEmpty('retourmois_x'))) {
253  $_SESSION["jour"] = date("j");
254  $_SESSION["mois"] = date("n");
255  $_SESSION["annee"] = date("Y");
256 }
257 
258 //mise a jour des valeurs de session si mois avant
259 if (issetAndNoEmpty('moisavant_x') || issetAndNoEmpty('moisavant')) {
260  if ($_SESSION["mois"] == 1) {
261  $_SESSION["mois"] = 12;
262  $_SESSION["annee"] = $_SESSION["annee"] - 1;
263  } else {
264  $_SESSION["mois"] -= 1;
265  }
266 
267  //On sauvegarde les heures deja entrées
268  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
269  $nbofchoice = count($_SESSION["totalchoixjour"]);
270  for ($i = 0; $i < $nbofchoice; $i++) {
271  //affichage des 5 cases horaires
272  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
273  $horairesi = GETPOST("horaires".$i);
274  $_SESSION["horaires$i"][$j] = $horairesi[$j];
275  }
276  }
277  }
278 }
279 
280 //mise a jour des valeurs de session si mois apres
281 if (issetAndNoEmpty('moisapres_x') || issetAndNoEmpty('moisapres')) {
282  if ($_SESSION["mois"] == 12) {
283  $_SESSION["mois"] = 1;
284  $_SESSION["annee"] += 1;
285  } else {
286  $_SESSION["mois"] += 1;
287  }
288 
289  //On sauvegarde les heures deja entrées
290  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
291  $nbofchoice = count($_SESSION["totalchoixjour"]);
292  for ($i = 0; $i < $nbofchoice; $i++) {
293  //affichage des 5 cases horaires
294  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
295  $horairesi = GETPOST("horaires".$i);
296  $_SESSION["horaires$i"][$j] = $horairesi[$j];
297  }
298  }
299  }
300 }
301 
302 //mise a jour des valeurs de session si annee avant
303 if (issetAndNoEmpty('anneeavant_x') || issetAndNoEmpty('anneeavant')) {
304  $_SESSION["annee"] -= 1;
305 
306  //On sauvegarde les heures deja entrées
307  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
308  $nbofchoice = count($_SESSION["totalchoixjour"]);
309  for ($i = 0; $i < $nbofchoice; $i++) {
310  //affichage des 5 cases horaires
311  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
312  $horairesi = GETPOST("horaires".$i);
313  $_SESSION["horaires$i"][$j] = $horairesi[$j];
314  }
315  }
316  }
317 }
318 
319 //mise a jour des valeurs de session si annee apres
320 if (issetAndNoEmpty('anneeapres_x') || issetAndNoEmpty('anneeapres')) {
321  $_SESSION["annee"] += 1;
322 
323  //On sauvegarde les heures deja entrées
324  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
325  $nbofchoice = count($_SESSION["totalchoixjour"]);
326  for ($i = 0; $i < $nbofchoice; $i++) {
327  //affichage des 5 cases horaires
328  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
329  $horairesi = GETPOST("horaires".$i);
330  $_SESSION["horaires$i"][$j] = $horairesi[$j];
331  }
332  }
333  }
334 }
335 
336 //valeurs du nombre de jour dans le mois et du premier jour du mois
337 $nbrejourmois = date("t", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"]));
338 $premierjourmois = date("N", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"])) - 1;
339 
340 //traduction de la valeur du mois
341 if (is_integer($_SESSION["mois"]) && $_SESSION["mois"] > 0 && $_SESSION["mois"] < 13) {
342  $motmois = dol_print_date(mktime(0, 0, 0, $_SESSION["mois"], 10), '%B');
343 } else {
344  $motmois = dol_print_date(dol_now(), '%B');
345 }
346 
347 
348 //Debut du formulaire et bandeaux de tete
349 print '<form name="formulaire" action="" method="POST">'."\n";
350 print '<input type="hidden" name="token" value="'.newToken().'">';
351 
352 print load_fiche_titre($langs->trans("CreatePoll").' (2 / 2)');
353 
354 //affichage de l'aide pour les jours
355 print '<div class="bodydate">'."\n";
356 print $langs->trans("OpenSurveyStep2")."\n";
357 print '</div>'."\n";
358 
359 //debut du tableau qui affiche le calendrier
360 print '<div class="corps">'."\n";
361 print '<div class="center">'."\n";
362 print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
363 print '<tr><td><input type="image" class="buttonwebsite" name="anneeavant" value="<<" src="../img/rewind.png"></td>';
364 print '<td><input type="image" class="buttonwebsite" name="moisavant" value="<" src="../img/previous.png"></td>';
365 print '<td width="150px" class="center"> '.$motmois.' '.$_SESSION["annee"].'<br>';
366 print '<input type="image" name="retourmois" class="buttonreset" alt="'.dol_escape_htmltag($langs->trans("BackToCurrentMonth")).'" title="'.dol_escape_htmltag($langs->trans("BackToCurrentMonth")).'" value="" src="'.img_picto('', 'refresh', '', 0, 1).'">';
367 print '</td>';
368 print '<td><input type="image" class="buttonwebsite" name="moisapres" value=">" src="../img/next.png"></td>';
369 print '<td><input type="image" class="buttonwebsite" name="anneeapres" value=">>" src="../img/fforward.png"></td><td></td><td></td><td></td><td></td><td></td><td>';
370 print '</td></tr>'."\n";
371 print '</table>'."\n";
372 print '</div>'."\n";
373 
374 print '<div class="center calendrier">'."\n";
375 print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
376 print '<tr>'."\n";
377 
378 //affichage des jours de la semaine en haut du tableau
379 for ($i = 0; $i < 7; $i++) {
380  print '<td align="center" class="joursemaine">'.dol_print_date(mktime(0, 0, 0, 0, $i, 10), '%A').'</td>';
381 }
382 
383 print '</tr>'."\n";
384 
385 //ajout d'une entrée dans la variable de session qui contient toutes les dates
386 if (issetAndNoEmpty('choixjourajout')) {
387  if (!isset($_SESSION["totalchoixjour"])) {
388  $_SESSION["totalchoixjour"] = array();
389  }
390 
391  // Test pour éviter les doublons dans la variable qui contient toutes les dates
392  $journeuf = true;
393  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('choixjourajout') === true) {
394  $nbofchoice = count($_SESSION["totalchoixjour"]);
395  for ($i = 0; $i < $nbofchoice; $i++) {
396  $choixjourajout = GETPOST("choixjourajout");
397  if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"])) {
398  $journeuf = false;
399  }
400  }
401  }
402 
403  // Si le test est passé, alors on insere la valeur dans la variable de session qui contient les dates
404  if ($journeuf && issetAndNoEmpty('choixjourajout') === true) {
405  $choixjourajout = GETPOST("choixjourajout");
406  array_push($_SESSION["totalchoixjour"], dol_mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"]));
407  sort($_SESSION["totalchoixjour"]);
408  $cle = array_search(dol_mktime(0, 0, 0, $_SESSION["mois"], $choixjourajout[0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]);
409 
410  //On sauvegarde les heures deja entrées
411  for ($i = 0; $i < $cle; $i++) {
412  $horairesi = GETPOST("horaires".$i);
413  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
414  if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
415  $_SESSION["horaires$i"][$j] = $horairesi[$j];
416  }
417  }
418  }
419 
420  $nbofchoice = count($_SESSION["totalchoixjour"]);
421  for ($i = $cle; $i < $nbofchoice; $i++) {
422  $k = $i + 1;
423  if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
424  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
425  $horairesi = GETPOST("horaires".$i, 'array');
426  $_SESSION["horaires$i"][$j] = $horairesi[$j];
427  }
428  }
429  }
430 
431  unset($_SESSION["horaires$cle"]);
432  }
433 }
434 
435 //retrait d'une entrée dans la variable de session qui contient toutes les dates
436 if (issetAndNoEmpty('choixjourretrait')) {
437  //On sauvegarde les heures deja entrées
438  $nbofchoice = count($_SESSION["totalchoixjour"]);
439  for ($i = 0; $i < $nbofchoice; $i++) {
440  //affichage des 5 cases horaires
441  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
442  $horairesi = GETPOST("horaires".$i);
443  $_SESSION["horaires$i"][$j] = $horairesi[$j];
444  }
445  }
446 
447  for ($i = 0; $i < $nbofchoice; $i++) {
448  $choixjourretrait = GETPOST('choixjourretrait');
449  if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $choixjourretrait[0], $_SESSION["annee"])) {
450  for ($j = $i; $j < $nbofchoice; $j++) {
451  $k = $j + 1;
452  $_SESSION["horaires$j"] = $_SESSION["horaires$k"];
453  }
454 
455  array_splice($_SESSION["totalchoixjour"], $i, 1);
456  }
457  }
458 }
459 
460 //report des horaires dans toutes les cases
461 if (issetAndNoEmpty('reporterhoraires')) {
462  $_SESSION["horaires0"] = GETPOST("horaires0");
463  $nbofchoice = count($_SESSION["totalchoixjour"]);
464  for ($i = 0; $i < $nbofchoice; $i++) {
465  $j = $i + 1;
466  $_SESSION["horaires$j"] = $_SESSION["horaires$i"];
467  }
468 }
469 
470 //effacer les horaires dans toutes les cases
471 if (issetAndNoEmpty('resethoraires')) {
472  $nbofchoice = count($_SESSION["totalchoixjour"]);
473  for ($i = 0; $i < $nbofchoice; $i++) {
474  unset($_SESSION["horaires$i"]);
475  }
476 }
477 
478 // affichage du calendrier
479 print '<tr>'."\n";
480 
481 for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) {
482  $numerojour = $i - $premierjourmois + 1;
483 
484  // On saute a la ligne tous les 7 jours
485  if (($i % 7) == 0 && $i != 0) {
486  print '</tr><tr>'."\n";
487  }
488 
489  // On affiche les jours precedants en gris et incliquables
490  if ($i < $premierjourmois) {
491  print '<td class="avant"></td>'."\n";
492  } else {
493  if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true) {
494  $nbofchoice = count($_SESSION["totalchoixjour"]);
495  for ($j = 0; $j < $nbofchoice; $j++) {
496  // show red buttons
497  if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) {
498  print '<td align="center" class="choisi"><input type="submit" class="bouton OFF centpercent nomarginleft buttonwebsite" name="choixjourretrait[]" value="'.$numerojour.'"></td>'."\n";
499  $dejafait = $numerojour;
500  }
501  }
502  }
503 
504  // If no red button, we show green or grey button with number of day
505  if (isset($dejafait) === false || $dejafait != $numerojour) {
506  // green button
507  if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) {
508  print '<td class="center libre"><input type="submit" class="bouton ON centpercent nomarginleft buttonwebsite" name="choixjourajout[]" value="'.$numerojour.'"></td>'."\n";
509  } else {
510  // grey button
511  print '<td class="center avant">'.$numerojour.'</td>'."\n";
512  }
513  }
514  }
515 }
516 
517 //fin du tableau
518 print '</tr>'."\n";
519 print '</table>'."\n";
520 print '</div></div>'."\n";
521 
522 print '<div class="bodydate"><div class="center">'."\n";
523 
524 // affichage de tous les jours choisis
525 if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) {
526  //affichage des jours
527  print '<br>'."\n";
528  print '<div align="left">';
529  print '<strong>'.$langs->trans("SelectedDays").':</strong>'."<br>\n";
530  print $langs->trans("SelectDayDesc")."<br>\n";
531  print '</div><br>';
532 
533  print '<table>'."\n";
534  print '<tr>'."\n";
535  print '<td></td>'."\n";
536 
537  for ($i = 0; $i < $_SESSION["nbrecaseshoraires"]; $i++) {
538  $j = $i + 1;
539  print '<td classe="somme"><div class="center">'.$langs->trans("Time").' '.$j.'</div></td>'."\n";
540  }
541 
542  if ($_SESSION["nbrecaseshoraires"] < 10) {
543  print '<td classe="somme"><input type="image" name="ajoutcases" src="../img/add-16.png"></td>'."\n";
544  }
545 
546  print '</tr>'."\n";
547 
548  // Show list of selected days
549 
550  $nbofchoice = count($_SESSION["totalchoixjour"]);
551 
552  for ($i = 0; $i < $nbofchoice; $i++) {
553  print '<tr>'."\n";
554  print '<td class="left">'.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' <span class="opacitymedium">('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')</span></td>';
555 
556  //affichage des cases d'horaires
557  for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
558  //si on voit une erreur, le fond de la case est rouge
559  if (isset($errheure[$i][$j]) && $errheure[$i][$j]) {
560  print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'" style="background-color:#FF6666;"></td>'."\n";
561  } else {
562  //sinon la case est vide normalement
563  print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'"></td>'."\n";
564  }
565  }
566  print '</tr>'."\n";
567  }
568 
569  print '</table>'."\n";
570 
571  // show buttons to cancel, delete days or create survey
572  print '<table>'."\n";
573  print '<tr>'."\n";
574  print '<td><input type="submit" class="button small" name="reset" value="'.dol_escape_htmltag($langs->trans("RemoveAllDays")).'"></td>';
575  print '<td><input type="submit" class="button small" name="reporterhoraires" value="'.dol_escape_htmltag($langs->trans("CopyHoursOfFirstDay")).'"></td>';
576  print '<td><input type="submit" class="button small" name="resethoraires" value="'.dol_escape_htmltag($langs->trans("RemoveAllHours")).'"></td></tr>'."\n";
577  print'<tr><td colspan="3"><br><br></td></tr>'."\n";
578  print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="confirmation" value="'.$langs->trans("CreatePoll").'"></td></tr>'."\n";
579  print '</table>'."\n";
580 }
581 
582 print '</tr>'."\n";
583 print '</table>'."\n";
584 print '<a name=bas></a>'."\n";
585 //fin du formulaire et bandeau de pied
586 print '</form>'."\n";
587 //bandeau de pied
588 print '<br><br><br><br>'."\n";
589 print '</div></div>'."\n";
590 
591 // End of page
592 llxFooter();
593 $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_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.