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