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
26require '../../main.inc.php';
27require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
28require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
29require_once DOL_DOCUMENT_ROOT."/opensurvey/lib/opensurvey.lib.php";
30
31// Security check
32if (!$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
47if (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
189if (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
207if (!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');
214llxHeader('', $langs->trans("OpenSurvey"), "", '', 0, 0, $arrayofjs, $arrayofcss);
215
216//nombre de cases par défaut
217if (!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
241if (!isset($_SESSION['jour'])) {
242 $_SESSION['jour'] = date('j');
243}
244if (!isset($_SESSION['mois'])) {
245 $_SESSION['mois'] = date('n');
246}
247if (!isset($_SESSION['annee'])) {
248 $_SESSION['annee'] = date('Y');
249}
250
251//mise a jour des valeurs de session si bouton retour a aujourd'hui
252if (!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
259if (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
281if (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
303if (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
320if (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
341if (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
349print '<form name="formulaire" action="" method="POST">'."\n";
350print '<input type="hidden" name="token" value="'.newToken().'">';
351
352print load_fiche_titre($langs->trans("CreatePoll").' (2 / 2)');
353
354//affichage de l'aide pour les jours
355print '<div class="bodydate">'."\n";
356print $langs->trans("OpenSurveyStep2")."\n";
357print '</div>'."\n";
358
359//debut du tableau qui affiche le calendrier
360print '<div class="corps">'."\n";
361print '<div class="center">'."\n";
362print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
363print '<tr><td><input type="image" class="buttonwebsite" name="anneeavant" value="<<" src="../img/rewind.png"></td>';
364print '<td><input type="image" class="buttonwebsite" name="moisavant" value="<" src="../img/previous.png"></td>';
365print '<td width="150px" class="center"> '.$motmois.' '.$_SESSION["annee"].'<br>';
366print '<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).'">';
367print '</td>';
368print '<td><input type="image" class="buttonwebsite" name="moisapres" value=">" src="../img/next.png"></td>';
369print '<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>';
370print '</td></tr>'."\n";
371print '</table>'."\n";
372print '</div>'."\n";
373
374print '<div class="center calendrier">'."\n";
375print '<table align="center">'."\n"; // The div class=center has no effect on table, so we must keep the align=center for table
376print '<tr>'."\n";
377
378//affichage des jours de la semaine en haut du tableau
379for ($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
383print '</tr>'."\n";
384
385//ajout d'une entrée dans la variable de session qui contient toutes les dates
386if (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
436if (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
461if (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
471if (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
479print '<tr>'."\n";
480
481for ($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
518print '</tr>'."\n";
519print '</table>'."\n";
520print '</div></div>'."\n";
521
522print '<div class="bodydate"><div class="center">'."\n";
523
524// affichage de tous les jours choisis
525if (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
582print '</tr>'."\n";
583print '</table>'."\n";
584print '<a name=bas></a>'."\n";
585//fin du formulaire et bandeau de pied
586print '</form>'."\n";
587//bandeau de pied
588print '<br><br><br><br>'."\n";
589print '</div></div>'."\n";
590
591// End of page
592llxFooter();
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.