choix_date.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  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 <http://www.gnu.org/licenses/>.
  17. */
  18. /**
  19. * \file htdocs/opensurvey/wizard/choix_date.php
  20. * \ingroup opensurvey
  21. * \brief Page to create a new survey (date selection)
  22. */
  23. require_once('../../main.inc.php');
  24. require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
  25. require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
  26. require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
  27. // Security check
  28. if (!$user->rights->opensurvey->write) accessforbidden();
  29. //le format du sondage est DATE
  30. $_SESSION["formatsondage"] = "D";
  31. //traitement de l'entrée des heures dans les cases texte
  32. $erreur = false;
  33. /*
  34. * Actions
  35. */
  36. // Insert survey
  37. if (GETPOST('confirmation'))
  38. {
  39. //On sauvegarde les heures deja entrées
  40. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('nbrecaseshoraires', $_SESSION) === true)
  41. {
  42. $nbofchoice=count($_SESSION["totalchoixjour"]);
  43. for ($i = 0; $i < $nbofchoice; $i++) {
  44. //affichage des 5 cases horaires
  45. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  46. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  47. $case = $j + 1;
  48. if (isset($_POST['horaires'.$i]) === false || isset($_POST['horaires'.$i][$j]) === false) {
  49. $errheure[$i][$j]=true;
  50. $erreur=true;
  51. continue;
  52. }
  53. //si c'est un creneau type 8:00-11:00
  54. if (preg_match("/(\d{1,2}:\d{2})-(\d{1,2}:\d{2})/", $_POST["horaires$i"][$j], $creneaux)) {
  55. //on recupere les deux parties du preg_match qu'on redécoupe autour des ":"
  56. $debutcreneau=explode(":", $creneaux[1]);
  57. $fincreneau=explode(":", $creneaux[2]);
  58. //comparaison des heures de fin et de debut
  59. //si correctes, on entre les données dans la variables de session
  60. 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]))) {
  61. $_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
  62. } else { //sinon message d'erreur et nettoyage de la case
  63. $errheure[$i][$j]=true;
  64. $erreur=true;
  65. }
  66. } elseif (preg_match(";^(\d{1,2}h\d{0,2})-(\d{1,2}h\d{0,2})$;i", $_POST["horaires$i"][$j], $creneaux)) { //si c'est un creneau type 8h00-11h00
  67. //on recupere les deux parties du preg_match qu'on redécoupe autour des "H"
  68. $debutcreneau=preg_split("/h/i", $creneaux[1]);
  69. $fincreneau=preg_split("/h/i", $creneaux[2]);
  70. //comparaison des heures de fin et de debut
  71. //si correctes, on entre les données dans la variables de session
  72. 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]))) {
  73. $_SESSION["horaires$i"][$j] = $creneaux[1].'-'.$creneaux[2];
  74. } else { //sinon message d'erreur et nettoyage de la case
  75. $errheure[$i][$j]=true;
  76. $erreur=true;
  77. }
  78. } elseif (preg_match(";^(\d{1,2}):(\d{2})$;", $_POST["horaires$i"][$j], $heures)) { //si c'est une heure simple type 8:00
  79. //si valeures correctes, on entre les données dans la variables de session
  80. if ($heures[1] < 24 && $heures[2] < 60) {
  81. $_SESSION["horaires$i"][$j] = $heures[0];
  82. } else { //sinon message d'erreur et nettoyage de la case
  83. $errheure[$i][$j]=true;
  84. $erreur=true;
  85. }
  86. } elseif (preg_match(";^(\d{1,2})h(\d{0,2})$;i", $_POST["horaires$i"][$j], $heures)) { //si c'est une heure encore plus simple type 8h
  87. //si valeures correctes, on entre les données dans la variables de session
  88. if ($heures[1] < 24 && $heures[2] < 60) {
  89. $_SESSION["horaires$i"][$j] = $heures[0];
  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{1,2})$;", $_POST["horaires$i"][$j], $heures)) { //si c'est un creneau simple type 8-11
  95. //si valeures correctes, on entre les données dans la variables de session
  96. if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
  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{1,2})h$;", $_POST["horaires$i"][$j], $heures)) { //si c'est un creneau H type 8h-11h
  103. //si valeures correctes, on entre les données dans la variables de session
  104. if ($heures[1] < $heures[2] && $heures[1] < 24 && $heures[2] < 24) {
  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 ($_POST["horaires$i"][$j]=="") { //Si la case est vide
  111. unset($_SESSION["horaires$i"][$j]);
  112. } else { //pour tout autre format, message d'erreur
  113. $errheure[$i][$j]=true;
  114. $erreur=true;
  115. }
  116. if (issetAndNoEmpty('horaires'.$i, $_SESSION) === false || issetAndNoEmpty($j, $_SESSION['horaires'.$i]) === false) {
  117. if (issetAndNoEmpty('horaires'.$i, $_SESSION) === true) {
  118. $_SESSION["horaires$i"][$j] = '';
  119. } else {
  120. $_SESSION["horaires$i"] = array();
  121. $_SESSION["horaires$i"][$j] = '';
  122. }
  123. }
  124. }
  125. if ($_SESSION["horaires$i"][0] == "" && $_SESSION["horaires$i"][1] == "" && $_SESSION["horaires$i"][2] == "" && $_SESSION["horaires$i"][3] == "" && $_SESSION["horaires$i"][4] == "") {
  126. $choixdate.=",";
  127. $choixdate .= $_SESSION["totalchoixjour"][$i];
  128. } else {
  129. for ($j=0;$j<$_SESSION["nbrecaseshoraires"];$j++) {
  130. if ($_SESSION["horaires$i"][$j]!="") {
  131. $choixdate.=",";
  132. $choixdate .= $_SESSION["totalchoixjour"][$i];
  133. $choixdate.="@";
  134. // On remplace la virgule et l'arobase pour ne pas avoir de problème par la suite
  135. $choixdate .= str_replace(array(',', '@'), array('&#44;', '&#64;'), $_SESSION["horaires$i"][$j]);
  136. }
  137. }
  138. }
  139. }
  140. if (isset($errheure)) {
  141. setEventMessage($langs->trans("ErrorBadFormat"), 'errors');
  142. }
  143. }
  144. //If just one day and no other time options, error message
  145. if (count($_SESSION["totalchoixjour"])=="1" && $_POST["horaires0"][0]=="" && $_POST["horaires0"][1]=="" && $_POST["horaires0"][2]=="" && $_POST["horaires0"][3]=="" && $_POST["horaires0"][4]=="") {
  146. setEventMessage($langs->trans("MoreChoices"), 'errors');
  147. $erreur=true;
  148. }
  149. if (!$erreur) {
  150. $_SESSION["toutchoix"]=substr("$choixdate",1);
  151. ajouter_sondage();
  152. }
  153. }
  154. // Reset days
  155. if (GETPOST('reset')) {
  156. $nbofchoice=count($_SESSION["totalchoixjour"]);
  157. for ($i = 0; $i < $nbofchoice; $i++) {
  158. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  159. unset($_SESSION["horaires$i"][$j]);
  160. }
  161. }
  162. unset($_SESSION["totalchoixjour"]);
  163. unset($_SESSION["nbrecaseshoraires"]);
  164. }
  165. /*
  166. * View
  167. */
  168. if (! isset($_SESSION['commentaires']) && ! isset($_SESSION['mail']))
  169. {
  170. dol_print_error('', $langs->trans('ErrorOpenSurveyFillFirstSection'));
  171. exit;
  172. }
  173. $arrayofjs=array();
  174. $arrayofcss=array('/opensurvey/css/style.css');
  175. llxHeader('', $langs->trans("OpenSurvey"), "", '', 0, 0, $arrayofjs, $arrayofcss);
  176. //nombre de cases par défaut
  177. if (! isset($_SESSION["nbrecaseshoraires"]))
  178. {
  179. $_SESSION["nbrecaseshoraires"]=5;
  180. }
  181. elseif (GETPOST('ajoutcases') && $_SESSION["nbrecaseshoraires"] == 5)
  182. {
  183. $_SESSION["nbrecaseshoraires"]=10;
  184. }
  185. //valeurs de la date du jour actuel
  186. $jourAJ=date("j");
  187. $moisAJ=date("n");
  188. $anneeAJ=date("Y");
  189. // Initialisation des jour, mois et année
  190. if (! isset($_SESSION['jour'])) $_SESSION['jour']= date('j');
  191. if (! isset($_SESSION['mois'])) $_SESSION['mois']= date('n');
  192. if (! isset($_SESSION['annee'])) $_SESSION['annee']= date('Y');
  193. //mise a jour des valeurs de session si bouton retour a aujourd'hui
  194. if ((!issetAndNoEmpty('choixjourajout')) && !issetAndNoEmpty('choixjourretrait') || issetAndNoEmpty('retourmois')){
  195. $_SESSION["jour"]=date("j");
  196. $_SESSION["mois"]=date("n");
  197. $_SESSION["annee"]=date("Y");
  198. }
  199. //mise a jour des valeurs de session si mois avant
  200. if (issetAndNoEmpty('moisavant_x') || issetAndNoEmpty('moisavant')) {
  201. if ($_SESSION["mois"] == 1) {
  202. $_SESSION["mois"] = 12;
  203. $_SESSION["annee"] = $_SESSION["annee"]-1;
  204. } else {
  205. $_SESSION["mois"] -= 1;
  206. }
  207. //On sauvegarde les heures deja entrées
  208. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true)
  209. {
  210. $nbofchoice=count($_SESSION["totalchoixjour"]);
  211. for ($i = 0; $i < $nbofchoice; $i++) {
  212. //affichage des 5 cases horaires
  213. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  214. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  215. }
  216. }
  217. }
  218. }
  219. //mise a jour des valeurs de session si mois apres
  220. if (issetAndNoEmpty('moisapres_x') || issetAndNoEmpty('moisapres')) {
  221. if ($_SESSION["mois"] == 12) {
  222. $_SESSION["mois"] = 1;
  223. $_SESSION["annee"] += 1;
  224. } else {
  225. $_SESSION["mois"] += 1;
  226. }
  227. //On sauvegarde les heures deja entrées
  228. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true)
  229. {
  230. $nbofchoice=count($_SESSION["totalchoixjour"]);
  231. for ($i = 0; $i < $nbofchoice; $i++)
  232. {
  233. //affichage des 5 cases horaires
  234. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  235. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  236. }
  237. }
  238. }
  239. }
  240. //mise a jour des valeurs de session si annee avant
  241. if (issetAndNoEmpty('anneeavant_x') || issetAndNoEmpty('anneeavant')) {
  242. $_SESSION["annee"] -= 1;
  243. //On sauvegarde les heures deja entrées
  244. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true)
  245. {
  246. $nbofchoice=count($_SESSION["totalchoixjour"]);
  247. for ($i = 0; $i < $nbofchoice; $i++) {
  248. //affichage des 5 cases horaires
  249. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  250. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  251. }
  252. }
  253. }
  254. }
  255. //mise a jour des valeurs de session si annee apres
  256. if (issetAndNoEmpty('anneeapres_x') || issetAndNoEmpty('anneeapres')) {
  257. $_SESSION["annee"] += 1;
  258. //On sauvegarde les heures deja entrées
  259. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true)
  260. {
  261. $nbofchoice=count($_SESSION["totalchoixjour"]);
  262. for ($i = 0; $i < $nbofchoice; $i++) {
  263. //affichage des 5 cases horaires
  264. for ($j = 0;$j < $_SESSION["nbrecaseshoraires"]; $j++) {
  265. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  266. }
  267. }
  268. }
  269. }
  270. //valeurs du nombre de jour dans le mois et du premier jour du mois
  271. $nbrejourmois = date("t", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"]));
  272. $premierjourmois = date("N", mktime(0, 0, 0, $_SESSION["mois"], 1, $_SESSION["annee"])) - 1;
  273. //traduction de la valeur du mois
  274. if (is_integer($_SESSION["mois"]) && $_SESSION["mois"] > 0 && $_SESSION["mois"] < 13)
  275. {
  276. $motmois=dol_print_date(mktime(0, 0, 0, $_SESSION["mois"], 10), '%B');
  277. }
  278. else
  279. {
  280. $motmois=dol_print_date(dol_now(), '%B');
  281. }
  282. //Debut du formulaire et bandeaux de tete
  283. print '<form name="formulaire" action="" method="POST">'."\n";
  284. print_fiche_titre($langs->trans("CreatePoll").' (2 / 2)');
  285. //affichage de l'aide pour les jours
  286. print '<div class="bodydate">'."\n";
  287. print $langs->trans("OpenSurveyStep2")."\n";
  288. print '</div>'."\n";
  289. //debut du tableau qui affiche le calendrier
  290. print '<center><div class="corps">'."\n";
  291. print '<table align=center>'."\n";
  292. 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>';
  293. print '<td width="150px" align="center"> '.$motmois.' '.$_SESSION["annee"].'<br>';
  294. 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).'">';
  295. print '</td><td><input type="image" name="moisapres" value=">" src="../img/next.png"></td>';
  296. print '<td><input type="image" name="anneeapres" value=">>" src="../img/fforward.png"></td><td></td><td></td><td></td><td></td><td></td><td>';
  297. print '</td></tr>'."\n";
  298. print '</table>'."\n";
  299. print '<table>'."\n";
  300. print '<tr>'."\n";
  301. //affichage des jours de la semaine en haut du tableau
  302. for($i = 0; $i < 7; $i++)
  303. {
  304. print '<td align="center" class="joursemaine">'. dol_print_date(mktime(0,0,0,0, $i,10),'%A') .'</td>';
  305. }
  306. print '</tr>'."\n";
  307. //ajout d'une entrée dans la variable de session qui contient toutes les dates
  308. if (issetAndNoEmpty('choixjourajout')) {
  309. if (!isset($_SESSION["totalchoixjour"])) {
  310. $_SESSION["totalchoixjour"]=array();
  311. }
  312. // Test pour éviter les doublons dans la variable qui contient toutes les dates
  313. $journeuf = true;
  314. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true && issetAndNoEmpty('choixjourajout') === true)
  315. {
  316. $nbofchoice=count($_SESSION["totalchoixjour"]);
  317. for ($i = 0; $i < $nbofchoice; $i++) {
  318. if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"])) {
  319. $journeuf=false;
  320. }
  321. }
  322. }
  323. // Si le test est passé, alors on insere la valeur dans la variable de session qui contient les dates
  324. if ($journeuf && issetAndNoEmpty('choixjourajout') === true) {
  325. array_push($_SESSION["totalchoixjour"], dol_mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"]));
  326. sort($_SESSION["totalchoixjour"]);
  327. $cle=array_search(dol_mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourajout"][0], $_SESSION["annee"]), $_SESSION["totalchoixjour"]);
  328. //On sauvegarde les heures deja entrées
  329. for ($i = 0; $i < $cle; $i++) {
  330. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  331. if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
  332. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  333. }
  334. }
  335. }
  336. $nbofchoice=count($_SESSION["totalchoixjour"]);
  337. for ($i = $cle; $i < $nbofchoice; $i++) {
  338. $k = $i + 1;
  339. if (issetAndNoEmpty('horaires'.$i) === true && issetAndNoEmpty($i, $_POST['horaires'.$i]) === true) {
  340. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  341. $_SESSION["horaires$k"][$j] = $_POST["horaires$i"][$j];
  342. }
  343. }
  344. }
  345. unset($_SESSION["horaires$cle"]);
  346. }
  347. }
  348. //retrait d'une entrée dans la variable de session qui contient toutes les dates
  349. if (issetAndNoEmpty('choixjourretrait')) {
  350. //On sauvegarde les heures deja entrées
  351. $nbofchoice=count($_SESSION["totalchoixjour"]);
  352. for ($i = 0; $i < $nbofchoice; $i++) {
  353. //affichage des 5 cases horaires
  354. for ($j = 0; $j < $_SESSION["nbrecaseshoraires"]; $j++) {
  355. $_SESSION["horaires$i"][$j] = $_POST["horaires$i"][$j];
  356. }
  357. }
  358. for ($i = 0; $i < $nbofchoice; $i++)
  359. {
  360. if ($_SESSION["totalchoixjour"][$i] == mktime(0, 0, 0, $_SESSION["mois"], $_POST["choixjourretrait"][0], $_SESSION["annee"]))
  361. {
  362. for ($j = $i; $j < $nbofchoice; $j++) {
  363. $k = $j+1;
  364. $_SESSION["horaires$j"] = $_SESSION["horaires$k"];
  365. }
  366. array_splice($_SESSION["totalchoixjour"], $i,1);
  367. }
  368. }
  369. }
  370. //report des horaires dans toutes les cases
  371. if (issetAndNoEmpty('reporterhoraires')) {
  372. $_SESSION["horaires0"] = $_POST["horaires0"];
  373. $nbofchoice=count($_SESSION["totalchoixjour"]);
  374. for ($i = 0; $i < $nbofchoice; $i++) {
  375. $j = $i+1;
  376. $_SESSION["horaires$j"] = $_SESSION["horaires$i"];
  377. }
  378. }
  379. //report des horaires dans toutes les cases
  380. if (issetAndNoEmpty('resethoraires')) {
  381. $nbofchoice=count($_SESSION["totalchoixjour"]);
  382. for ($i = 0; $i < $nbofchoice; $i++) {
  383. unset ($_SESSION["horaires$i"]);
  384. }
  385. }
  386. // affichage du calendrier
  387. print '<tr>'."\n";
  388. for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) {
  389. $numerojour = $i-$premierjourmois+1;
  390. // On saute a la ligne tous les 7 jours
  391. if (($i%7) == 0 && $i != 0) {
  392. print '</tr><tr>'."\n";
  393. }
  394. // On affiche les jours precedants en gris et incliquables
  395. if ($i < $premierjourmois) {
  396. print '<td class="avant"></td>'."\n";
  397. } else {
  398. if (issetAndNoEmpty('totalchoixjour', $_SESSION) === true)
  399. {
  400. $nbofchoice=count($_SESSION["totalchoixjour"]);
  401. for ($j = 0; $j < $nbofchoice; $j++) {
  402. //affichage des boutons ROUGES
  403. if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) {
  404. print '<td align="center" class="choisi"><input type="submit" class="bouton OFF" name="choixjourretrait[]" value="'.$numerojour.'"></td>'."\n";
  405. $dejafait = $numerojour;
  406. }
  407. }
  408. }
  409. //Si pas de bouton ROUGE alors on affiche un bouton VERT ou GRIS avec le numéro du jour dessus
  410. if (isset($dejafait) === false || $dejafait != $numerojour){
  411. //bouton vert
  412. if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) {
  413. print '<td align="center" class="libre"><input type="submit" class="bouton ON" name="choixjourajout[]" value="'.$numerojour.'"></td>'."\n";
  414. } else { //bouton gris
  415. print '<td align="center" class="avant">'.$numerojour.'</td>'."\n";
  416. }
  417. }
  418. }
  419. }
  420. //fin du tableau
  421. print '</tr>'."\n";
  422. print '</table>'."\n";
  423. print '</div></center>'."\n";
  424. print '<div class="bodydate"><center>'."\n";
  425. // affichage de tous les jours choisis
  426. if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur)
  427. {
  428. //affichage des jours
  429. print '<br>'."\n";
  430. print '<strong>'. $langs->trans("SelectedDays") .':</strong>'."<br>\n";
  431. print $langs->trans("SelectDayDesc")."<br>\n";
  432. print '<table>'."\n";
  433. print '<tr>'."\n";
  434. print '<td></td>'."\n";
  435. for ($i = 0; $i < $_SESSION["nbrecaseshoraires"]; $i++) {
  436. $j = $i+1;
  437. print '<td classe="somme">'. $langs->trans("Time") .' '.$j.'</center></td>'."\n";
  438. }
  439. if ($_SESSION["nbrecaseshoraires"] < 10) {
  440. print '<td classe="somme"><input type="image" name="ajoutcases" src="../img/add-16.png"></td>'."\n";
  441. }
  442. print '</tr>'."\n";
  443. //affichage de la liste des jours choisis
  444. $nbofchoice=count($_SESSION["totalchoixjour"]);
  445. for ($i=0; $i<$nbofchoice; $i++)
  446. {
  447. print '<tr>'."\n";
  448. print '<td>'.dol_print_date($_SESSION["totalchoixjour"][$i], 'daytext').' ('.dol_print_date($_SESSION["totalchoixjour"][$i], '%A').')</td>';
  449. //affichage des cases d'horaires
  450. for ($j=0;$j<$_SESSION["nbrecaseshoraires"];$j++) {
  451. //si on voit une erreur, le fond de la case est rouge
  452. if (isset($errheure[$i][$j]) && $errheure[$i][$j]) {
  453. print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'" style="background-color:#FF6666;"></td>'."\n";
  454. } else { //sinon la case est vide normalement
  455. print '<td><input type=text size="10" maxlength="11" name=horaires'.$i.'[] value="'.$_SESSION["horaires$i"][$j].'"></td>'."\n";
  456. }
  457. }
  458. print '</tr>'."\n";
  459. }
  460. print '</table>'."\n";
  461. //affichage des boutons de formulaire pour annuler, effacer les jours ou créer le sondage
  462. print '<table>'."\n";
  463. print '<tr>'."\n";
  464. 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";
  465. print'<tr><td colspan="3"><br><br></td></tr>'."\n";
  466. print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="confirmation" value="'. $langs->trans("CreatePoll"). '"></td></tr>'."\n";
  467. print '</table>'."\n";
  468. }
  469. print '</tr>'."\n";
  470. print '</table>'."\n";
  471. print '<a name=bas></a>'."\n";
  472. //fin du formulaire et bandeau de pied
  473. print '</form>'."\n";
  474. //bandeau de pied
  475. print '<br><br><br><br>'."\n";
  476. print '</center></div>'."\n";
  477. llxFooter();
  478. $db->close();