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