libforms.inc.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. <?php
  2. // Librairie de fonctions de formulaire de l'application web.
  3. // Séquence de pagination
  4. unset($seqpage);
  5. // ----------------------------------------------------
  6. // Ajoute le titre et l'horloge de fermeture de session
  7. // ----------------------------------------------------
  8. function preparerModule($module) {
  9. global $seqpage;
  10. global $nombreaffiche;
  11. global $nopage;
  12. global $dir;
  13. global $tri;
  14. global $zonerecherche;
  15. $output = "<script type='text/javascript'>\n";
  16. // Code jQuery selon le type de bouton requis par le module.
  17. // ---------------------------------------------------------
  18. if (isset($module["msgmodifbouton"]) || isset($module["msgajoutbouton"])) {
  19. $output .= "function changetitre(notitre) {\n";
  20. $output .= " if (notitre==1) {\n";
  21. if (isset($module["msgajoutbouton"])) {
  22. $output .= " $(\".ui-dialog-title\").text(\"" . $module["msgajoutbouton"] . "\");\n";
  23. if (isset($module["actionajoutbouton"])) {
  24. $output .= " $(\"#boutonaction\").val(\"" . $module["actionajoutbouton"] . "\");\n";
  25. }
  26. foreach ($module["fenetre"]["champs"] as $clef => $item) {
  27. $output .= " $(\"#$item\").val(\"\");\n";
  28. }
  29. }
  30. $output .= " } else {\n";
  31. if (isset($module["msgmodifbouton"])) {
  32. $output .= " $(\".ui-dialog-title\").text(\"" . $module["msgmodifbouton"] . "\");\n";
  33. $output .= " $(\"#boutonaction\").val(\"" . $module["actionmodifbouton"] . "\");\n";
  34. foreach ($module["fenetre"]["champs"] as $clef => $item) {
  35. $output .= " $(\"#$item\").val(\"\");\n";
  36. }
  37. }
  38. $output .= " }\n";
  39. $output .= "}\n";
  40. }
  41. // Ajoute un gestionnaire javascript pour les changement de valeur dans une liste déroulante
  42. // -----------------------------------------------------------------------------------------
  43. $output .= "function verifiechangement(objet, formulaire) {\n";
  44. $output .= " var valeur = document.getElementById(objet).value;\n";
  45. $output .= " var nom = document.getElementById(objet).name;\n";
  46. $output .= " var nouvelobjet = document.createElement('input');\n";
  47. $output .= " nouvelobjet.setAttribute('type', 'hidden');\n";
  48. $output .= " nouvelobjet.setAttribute('name', nom);\n";
  49. $output .= " nouvelobjet.setAttribute('id', nom);\n";
  50. $output .= " nouvelobjet.setAttribute('value', valeur);\n";
  51. $output .= " document.forms[formulaire].appendChild(nouvelobjet);\n";
  52. $output .= " document.getElementById(formulaire).submit();\n";
  53. $output .= "}\n";
  54. // Code JavaScript pour la recherche ajax
  55. // --------------------------------------
  56. if (isset($module["recherche"]) && $module["recherche"] == true) {
  57. $output .= "function selectedD(choice, choice2){\n";
  58. $output .= " var cible = document.getElementById('lemploye');\n";
  59. $output .= " cible.value = choice;\n";
  60. $output .= " var cible2 = document.getElementById('lreference');\n";
  61. $output .= " cible2.value=choice2;\n";
  62. $output .= "}\n";
  63. $output .= "function selectedE(id,choice, choice2){\n";
  64. $output .= " var cible = document.getElementById(id);\n";
  65. $output .= " cible.value = choice;\n";
  66. $output .= " var cible2 = document.getElementById('lreference');\n";
  67. $output .= " cible2.value=choice2;\n";
  68. $output .= " var cible3 = document.getElementById('zonerecherche');\n";
  69. $output .= " cible3.value=choice;\n";
  70. $output .= "}\n";
  71. }
  72. // Code jQuery pour le formulaire d'édition
  73. // ----------------------------------------
  74. if (isset($module["fenetre"])) {
  75. $output .= "function overlay() {\n";
  76. $output .= " $(\"#fenetremodale\").dialog( \"open\" );\n";
  77. $output .= "}\n\n";
  78. }
  79. // Début DOM
  80. // ---------
  81. $output .= "$(document).ready(function() {\n";
  82. // Définition de la zone de recherche Ajax
  83. // ---------------------------------------
  84. if (isset($module["recherche"]) && $module["recherche"] == true) {
  85. $output .= " $(\"#zoneresultats\").slideUp();\n";
  86. $output .= " $(\"#zonerecherche\").focus(function() {\n";
  87. $output .= " if ($(\"#zonerecherche\").val() == 'Recherche') {\n";
  88. $output .= " $(\"#zonerecherche\").val('');\n";
  89. $output .= " }\n";
  90. $output .= " });\n";
  91. $output .= " $(\"#zonerecherche\").blur(function() {\n";
  92. $output .= " $(\"#zoneresultats\").slideUp();\n";
  93. $output .= " });\n";
  94. $output .= " $(\"#zonerecherche\").keyup(function(event) {\n";
  95. $output .= " var SearchText = $(\"#zonerecherche\").val();\n";
  96. $output .= " if (SearchText.length>0) {\n";
  97. $output .= " $(\"#zoneresultats\").load(\"ajaxsearch.php\", { zonerecherche: SearchText, id:1 });\n";
  98. $output .= " $(\"#zoneresultats\").slideDown();\n";
  99. $output .= " } else {\n";
  100. $output .= " $(\"#zoneresultats\").slideUp();\n";
  101. $output .= " }\n";
  102. $output .= " });\n";
  103. }
  104. // Définition du formulaire d'édition
  105. // ----------------------------------
  106. if (isset($module["fenetre"])) {
  107. $output .= " $(\"#fenetremodale\").dialog({\n";
  108. $output .= " autoOpen:false, \n";
  109. $output .= " show:false, \n";
  110. $output .= " height: " . $module["fenetre"]["hauteur"] . ", \n";
  111. $output .= " width: " . $module["fenetre"]["largeur"] . ", \n";
  112. $output .= " modal:true, \n";
  113. $output .= " title:\"\"\n";
  114. $output .= " })\n";
  115. }
  116. // Code jQuery pour Message de réussite ou échec
  117. // ---------------------------------------------
  118. if (isset($module["resultatSQL"])) {
  119. $output .= "jMessage(\"" . $module["message"] . "\");\n";
  120. }
  121. // Fin DOM
  122. // -------
  123. $output .= "});\n";
  124. $output .= "</script>\n";
  125. // Titre du module
  126. // ---------------
  127. $hauteurtitre = (strlen($module["titre"]) > 30) ? 65 : 40;
  128. $output .= "<div class='hiddenInViewSource' style='height:" . $hauteurtitre . "px;'>\n";
  129. $output .= "<div class='titremodule' style='height:$hauteurtitre;'>" . $module["titre"];
  130. // Retour au module avec paramètre par défaut
  131. // ------------------------------------------
  132. if (isset($module["urldest"]) && !empty($module["urldest"])) {
  133. $output .= "<a href='" . $module["urldest"] . "&jeton=" . $module["jeton"] . "'>";
  134. $output .= "<img src='images/icones/icones_maison.png' style='position:relative; ";
  135. $output .= "top:+2px; left:+10px;border:0;'></a>";
  136. }
  137. $output .= "</div>\n";
  138. // Message de réussite ou d'échec de la
  139. // requête SQL (ajout, modif ou suppression)
  140. // et autres messages.
  141. // Ne pas afficher le message lorsque nous sommes en recherche
  142. // -----------------------------------------------------------
  143. $output .= "<div style='min-width:6%; width:6%; margin:auto; float:left; margin-top:5px; text-align:right;'>\n";
  144. if (isset($module["resultatSQL"])) {
  145. $output .= "<button style='background-color:#006466; border:0px; position:relative; top:-5px;'";
  146. $output .= "onclick='jMessage(\"" . htmlentities($module["message"]) . "\")'>";
  147. $output .= "<IMG SRC='images/icones/icones_38.png' alt='Message'>";
  148. $output .= "</button>\n";
  149. } else {
  150. $output .= "&nbsp;";
  151. }
  152. $output .= "</div>\n";
  153. // Fermeture automatique de la session
  154. // Ajout du bouton fermer à l'endroit convenu
  155. // ------------------------------------------
  156. $output .= "<div class='horloge'>\n";
  157. if (isset($module["boutonfermeraction"]) && $module["boutonfermeraction"] == "RevenirMenuPrecedent") {
  158. $output .= " <form name='horloge' action='index2.php?page=" . $module["menuprecedent"] . "' method='POST'>\n";
  159. $output .= " Temps restant :\n";
  160. $output .= " <input readonly='readonly' class='horloge2' name='clock' value='' ";
  161. $output .= "dir='rtl' type='text'> &nbsp;\n";
  162. $output .= " <input class='styled' type=\"submit\" style='cursor:pointer;' value=\"Fermer\">\n";
  163. $output .= " <input type='hidden' name='jeton' value='" . $_SESSION['jeton'] . "'>\n";
  164. $output .= " </form>";
  165. } elseif (!(isset($module["boutonfermeraction"]) && $module["boutonfermeraction"] == "fermerfenetre")) {
  166. $output .= " <form name='horloge' action='index2.php' method='POST'>\n";
  167. $output .= " Temps restant :\n";
  168. $output .= " <input readonly='readonly' class='horloge2' name='clock' value='' ";
  169. $output .= "dir='rtl' type='text'> &nbsp;\n";
  170. $output .= " <input class='styled' type=\"submit\" style='cursor:pointer;' value=\"Fermer\">\n";
  171. $output .= " <input type='hidden' name='jeton' value='" . $_SESSION['jeton'] . "'>\n";
  172. $output .= " </form>";
  173. } else {
  174. $output .= " <form name='horloge'>";
  175. $output .= " <input readonly='readonly' class='horloge2' name='clock' ";
  176. $output .= "value='' dir='rtl' type='text' style='display:none;'>\n";
  177. $output .= " <input type='button' class='fermer' value='Fermer' onclick='window.close();'>";
  178. $output .= " </form>";
  179. }
  180. $output .= "</div>\n";
  181. // Fin Div principal
  182. // -----------------
  183. $output .= "</div>\n";
  184. $output .= "<div style='clear:both;'></div>\n";
  185. // Début de la barre de recherche
  186. // ------------------------------
  187. $output .= "<table style='width:1200px; margin:auto;'>\n";
  188. $output .= "<tr>\n";
  189. // Pagination
  190. // ----------
  191. $comptelocal = (isset($module["compte"])) ? $module["compte"] : 0;
  192. $seqpage = preparePagination($comptelocal, $module["urldest"], $nopage, $tri, $dir, $nombreaffiche,
  193. empty($module["recherche"]) ? "" : $module["recherche"], $module["listeEmployeurs"] = null,
  194. $module["listeEmployes"] = null);
  195. $output .= "<td>";
  196. $output .= "&nbsp;";
  197. $output .= "</td>\n";
  198. $position = 1;
  199. // Zone de recherche
  200. // -----------------
  201. if (isset($module["recherche"]) && $module["recherche"]["engin"] == true) {
  202. $output .= "<td>\n";
  203. $output .= "<form method='POST' name='frmRecherche' id='rechercheform' action='";
  204. $output .= $module["urldest"] . "' autocomplete='off'>\n";
  205. $val = (!isset($zonerecherche)) ? "Recherche" : $zonerecherche;
  206. $output .= "<input id='zonerecherche' name='zonerecherche' value='$val' ";
  207. $output .= "style='font-size:10pt; font-family:arial, helvetica, sans-serif;'/>\n";
  208. //$output .= "onfocus='this.value=\"\";'/>\n";
  209. $output .= "<input id='loupe' type='image' src='images/rech.gif' />\n";
  210. $output .= "<input type='hidden' value='' id='lreference' name='lreference'>\n";
  211. $output .= "<input type='hidden' value='Recherche' id='action' name='action'>\n";
  212. $output .= "<input type='hidden' value='" . $GLOBALS["jeton"] . "' id='jeton' name='jeton'>\n";
  213. //$output .= "<input type='hidden' value='" . $GLOBALS["jeton"] . "' id='ListeEmploye' name='ListeEmploye'>\n";
  214. $output .= "<input type='hidden' value='" . $dir . "' id='dir' name='dir'>\n";
  215. $output .= "<input type='hidden' value='4' id='tri' name='tri'>\n";
  216. $output .= "<div style='width:280px; position: relative; top:0px; left:5px;'>\n";
  217. $output .= "<div id='zoneresultats'></div>\n";
  218. //$output .= sprintf("%s",$module["fenetre"]["champs"][$tri]);
  219. $output .= "</div>\n";
  220. $output .= "</form>\n";
  221. $output .= "</td>\n";
  222. $position = 1;
  223. $output .= "<td>\n";
  224. //$output .= "<form method='POST' name='frmRecherche2' id='rechercheform2'> ";
  225. // Jeton de sécurité
  226. //$output .= "<input type='hidden' name='jeton' value='" . $GLOBALS["jeton"] . "'>\n";
  227. //$output .= "</form>";
  228. $output .= "<button name='Réinitialise' onclick='$(\"#zonerecherche\").val(\"\");$(\"#lreference\").val(\"\");'/>Réinitialise</button>";
  229. $output .= "</td>\n";
  230. }
  231. /*
  232. // Liste des employeurs et des employés
  233. // ------------------------------------
  234. if (isset($module["recherche"]["engin"]) && $module["recherche"]["engin"] == true && !isset($module["recherche"]["filtre_employeur_employe"])) {
  235. global $ListeEmployeurs;
  236. global $ListeEmployes;
  237. $output .= "<td>\n";
  238. $output .= "<form method='POST' name='frmRecherche2' id='rechercheform2' ";
  239. $output .= "action='" . $module["urldest"] . "'>\n";
  240. $result2 = getEmployeurs($_SESSION["gestion_site"]);
  241. $param["form"] = "menu2";
  242. $param["nom"] = "ListeEmployeurs";
  243. $param["etq"] = "";
  244. $param["style"] = "width:5cm;";
  245. if ($_SESSION['gestion_site'] >= 'Oui') {
  246. $param["defaut"] = (isset($ListeEmployeurs) ? $ListeEmployeurs : '');
  247. } else {
  248. $param["defaut"] = $_SESSION["employeur"];
  249. }
  250. $param["donnees"] = $result2;
  251. $param["menu"] = true;
  252. $param["evt"] = "onchange=\"document.forms['frmRecherche2'].submit();\"";
  253. $output .= formListbox2($param);
  254. unset($result2);
  255. if ($_SESSION['gestion_site'] >= 'Oui') {
  256. if (isset($module["listeEmployeurs"]) && $module["listeEmployeurs"] > -1) {
  257. $result2 = getEmployes($ListeEmployeurs, "gestion_site");
  258. } else {
  259. $result2 = getEmployes('', "gestion_site");
  260. }
  261. } else {
  262. $param["defaut"] = (isset($module["listeEmployes"]) ? $module["listeEmployes"] : -1);
  263. $result2 = getEmployes($_SESSION["employeur"], "gestion_site");
  264. }
  265. unset($param);
  266. $param["form"] = "menu2";
  267. $param["nom"] = "ListeEmployes";
  268. $param["etq"] = "";
  269. if ($_SESSION['gestion_site'] >= 'Oui') {
  270. $param["defaut"] = (isset($module["listeEmployeurs"]) ? $module["listeEmployeurs"] : -1);
  271. } else {
  272. $param["defaut"] = $_SESSION["employeur"];
  273. }
  274. $param["defaut"] = (isset($module["listeEmployes"]) ? $module["listeEmployes"] : -1);
  275. $param["donnees"] = $result2;
  276. $param["menu"] = true;
  277. $param["evt"] = "onchange=\"document.forms['frmRecherche2'].submit();\"";
  278. $param["style"] = "width:5cm;";
  279. $output .= formListbox2($param);
  280. $output .= "</div>\n";
  281. global $page;
  282. if ($_SESSION["gestion_site"] == "Oui") {
  283. $output .= "<input class='Style12' type='button' value=' X ' onclick='$(\"#ListeEmployeurs\").val(-1);";
  284. } else {
  285. $output .= "<input class='Style12' type='button' value=' X ' ";
  286. $output .= "onclick='$(\"#ListeEmployeurs\").val(" . $_SESSION["employeur"] . ");";
  287. }
  288. $output .= "$(\"#ListeEmployes\").val(-1);'>\n";
  289. // Ajout de la valeur du nombre d'enregistrement par parge
  290. $output .= "<input type='hidden' name='nombreaffiche' value='$nombreaffiche'>\n";
  291. // Jeton de sécurité
  292. $output .= "<input type='hidden' name='jeton' value='" . $GLOBALS["jeton"] . "'>\n";
  293. $output .= "</form>";
  294. $output .= "</td>\n";
  295. }
  296. *
  297. */
  298. // Nombre à afficher par page
  299. // --------------------------
  300. if (isset($module["nombre_a_afficher"])) {
  301. $output .= "<td>\n";
  302. $nomempl1 = "&ListeEmployeurs=" . (isset($module["listeEmployeurs"]) ? $module["listeEmployeurs"] : -1);
  303. $nomempl2 = "&ListeEmployes=" . (isset($module["listeEmployes"]) ? $module["listeEmployes"] : -1);
  304. $output .= "<form id='frmNombre' name='frmNombre' method='POST' action='" . $module["urldest"];
  305. $output .= "&jeton=" . $module["jeton"] . $nomempl1 . $nomempl2 . "'>\n";
  306. $output .= formListbox("frmNombre", "nombreaffiche", "Affich&eacute; par groupe de : ",
  307. $nombreaffiche, $module["nombre_a_afficher"], "", "oui", "width:2cm;");
  308. $output .= "</form>\n";
  309. $output .= "</td>\n";
  310. $position = 1;
  311. }
  312. // Bouton d'ouverture du formulaire de détail
  313. // ------------------------------------------
  314. if (isset($module["opradmin"]) && !empty($module["opradmin"])) {
  315. $output .= "<td>\n";
  316. $output .= "<a href='#' class='lien' style='margin-right:0px; height:30px; line-height:29px;' ";
  317. $output .= "onclick='changetitre(1); overlay();' id='action_ajout'>";
  318. $output .= "<div class='user'>" . $module["opradmin"] . "</div></a>\n";
  319. $output .= "</td>\n";
  320. }
  321. // Ancre bas de page
  322. // -----------------
  323. if ($nombreaffiche > 15) {
  324. $output .= "<td style='text-align:right; width:81px;'>\n";
  325. $output .= "<a name='hautpage' href='#baspage' title='Aller en bas de la page'>Bas de page</a>\n";
  326. $output .= "</td>\n";
  327. }
  328. // Tri
  329. // ---
  330. $output .= "<input name='dir' type='hidden' value='$dir'>\n";
  331. // Fin de la barre de recherche
  332. // ----------------------------
  333. $output .= "</tr>\n";
  334. $output .= "</table>\n";
  335. // Entête de la liste principale
  336. // -----------------------------
  337. if (isset($module["entete"]) && (!isset($module["entete_principale"]) ||
  338. ($module["entete_principale"] != false && isset($module["entete_principale"])) )) {
  339. $output .= addHeader($module);
  340. }
  341. return $output;
  342. }
  343. // Ajoute simplement une entête de liste
  344. // Inclue également les tris
  345. // -------------------------------------
  346. function addHeader($module) {
  347. global $nombreaffiche;
  348. global $dir;
  349. global $tri;
  350. global $flechetri;
  351. global $ListeEmployeurs;
  352. global $ListeEmployes;
  353. global $lreference;
  354. // -------------------------------------------
  355. // Création de l'entête d'une liste principale
  356. // -------------------------------------------
  357. $taille = "1300px";
  358. if (isset($module["taille"])) {
  359. $taille = $module["taille"];
  360. } elseif (isset($module["tailleliste"])) {
  361. $taille = $module["tailleliste"];
  362. }
  363. $minNo = 22;
  364. if (isset($module["compte"])) {
  365. if ($module["compte"] <= 100) {
  366. $minNo = 22;
  367. } elseif ($module["compte"] <= 1000) {
  368. $minNo = 33;
  369. } elseif ($module["compte"] <= 10000) {
  370. $minNo = 44;
  371. }
  372. }
  373. // Ajouter les valeurs de $ListeEmployes et $ListeEmployeurs aux liens de tri.
  374. $ajout = "";
  375. if (isset($ListeEmployeurs) && $ListeEmployeurs != "-1") {
  376. $ajout = "&ListeEmployeurs=$ListeEmployeurs";
  377. }
  378. if (isset($ListeEmployes) && $ListeEmployes != "-1") {
  379. $ajout .= "&ListeEmployes=$ListeEmployes";
  380. }
  381. // Ajoute la r.éférence de la recherche Ajax si fournie.
  382. if (isset($lreference) && !empty($lreference)) {
  383. $ajout .= "&lreference=$lreference";
  384. }
  385. // Création de l'en-tête du la liste principale
  386. // --------------------------------------------
  387. $output = "<table style='width:$taille; margin:auto; border-collapse:collapse; table-layout:fixed;' class='hoverTable'>\n";
  388. $output .= "<tr style='height:35px;'>\n";
  389. $output .= "<th class='lien_tri' style='cursor:default; min-width:" . $minNo . "px; width:" . $minNo . "px;'>#</th>\n";
  390. foreach ($module["entete"] as $clef => $item) {
  391. $largeur = "";
  392. if (isset($item["largeur"])) {
  393. $largeur = "width:" . $item["largeur"] . "; max-width:" . $item["largeur"] . ";";
  394. }
  395. if (isset($module["lientri"]) && $module["lientri"] === true) {
  396. if ($item[key($item)] !== "-1") {
  397. // Affichage du lien si l'utilisateur a le droit requis
  398. // ----------------------------------------------------
  399. if (!isset($item["droit"]) || isset($item["droit"]) && $_SESSION[key($item["droit"])] === $item["droit"][key($item["droit"])]) {
  400. $output .= "<th class='lien_tri' style='$largeur'>";
  401. if ($clef != $tri) {
  402. $output .= "<a class='lien_tri tri' title='Trier par " . key($item) . "' href='" . $module["urldest"];
  403. $output .= "&tri=$clef&dir=desc&jeton=" . $module["jeton"] . "&nombreaffiche=$nombreaffiche$ajout'>" . key($item) . "</a>";
  404. } else {
  405. $dir2 = ($dir == "asc") ? "desc" : "asc";
  406. $output .= "<a class='lien_tri tri' title='Trier par " . key($item) . "' href='" . $module["urldest"];
  407. $output .= "&tri=$clef&dir=$dir2&jeton=" . $module["jeton"] . "&nombreaffiche=$nombreaffiche$ajout'>" . key($item);
  408. if ($flechetri) {
  409. $output .= "&nbsp;<IMG SRC='images/s_$dir2.png' style='border:0px;'></a>\n";
  410. }
  411. $output .= "</a>\n";
  412. }
  413. $output .= "</th>\n";
  414. }
  415. } else {
  416. if (!isset($item["droit"]) || isset($item["droit"]) && $_SESSION[key($item["droit"])] === $item["droit"][key($item["droit"])]) {
  417. $output .= "<th class='lien_tri' style='$largeur cursor:default;'>" . key($item) . "</th>\n";
  418. }
  419. }
  420. } else {
  421. $output .= "<th class='lien_tri' style='$largeur cursor:default;'>" . key($item) . "</th>\n";
  422. }
  423. }
  424. // Affichage de la colonne action
  425. // ------------------------------
  426. if ($_SESSION["gestion_site"] === "Oui" || isset($item["droit"]) &&
  427. $_SESSION[key($item["droit"])] === $item["droit"][key($item["droit"])]) {
  428. if (!isset($module["colonneaction"])) {
  429. $col_width = isset($module["nbaction"]) ? $module["nbaction"] * 30 : 30;
  430. $output .= "<th class='lien_tri' style='min-width:" . $col_width . "px; cursor:default;'></th>\n";
  431. }
  432. }
  433. $output .= "</tr>\n";
  434. return $output;
  435. }
  436. // -------------------------------------------------------------
  437. // Prépare la séquence de pagination dans les listes principales
  438. // -------------------------------------------------------------
  439. function preparePagination($nombre, $destination, $nopage, $tri, $dir, $nb, $module, $listeEmployeurs, $listeEmployes) {
  440. global $jeton;
  441. global $lreference;
  442. $nbpages = ceil($nombre / $nb);
  443. //TODO vérifier l'usage de ces 2 lignes.
  444. //$lreference = (isset($module["lreference"]) && !empty($module["lreference"])) ? "&lreference=" . $module["lreference"] : "";
  445. $zonerecherche = (isset($module["zonerecherche"]) && !empty($module["zonerecherche"])) ? "&zonerecherche=" . $module["zonerecherche"] : "";
  446. $jetonTxt = "&jeton=" . $jeton;
  447. //Ajouter les valeurs de $ListeEmployes et $ListeEmployeurs aux liens de tri.
  448. $ajout = (isset($listeEmployeurs) && $listeEmployeurs != "-1") ? "&ListeEmployeurs=$listeEmployeurs" : "";
  449. $ajout .= (isset($listeEmployes) && $listeEmployes != "-1") ? "&ListeEmployes=$listeEmployes" : "";
  450. // Ajoute la référence de la recherche Ajax
  451. // Remplace la ligne de refrence citée plus haut.
  452. $ajout .= (isset($lreference) && !empty($lreference)) ? "&lreference=$lreference" : "";
  453. $seqpage = "<div class='pagination'>";
  454. if ($nbpages > 1) {
  455. if ($nopage > 1) {
  456. $seqpage .= "<a class='page' title='Page précédente' href='$destination&tri=$tri&dir=$dir&nopage=";
  457. $seqpage .= ($nopage - 1) . "&nombreaffiche=$nb" . $ajout; // . $lreference;
  458. $seqpage .= $zonerecherche . $jetonTxt . "'>Précédent</a>\n&nbsp;";
  459. }
  460. if ($nombre > $nopage * $nb) {
  461. $seqpage .= "<a class='page' title='Page suivante' href='$destination&tri=$tri&dir=$dir&";
  462. $seqpage .= "nopage=" . ($nopage + 1) . "&nombreaffiche=$nb" . $ajout; // . $lreference;
  463. $seqpage .= $zonerecherche . $jetonTxt . "'>Suivant</a>\n&nbsp;";
  464. }
  465. }
  466. $seqpage .= "<div style='width:200px;'>";
  467. if ($nombre > 0) {
  468. $seqpage .= "Page : $nopage / ";
  469. $seqpage .= "Nombre : $nombre";
  470. }
  471. $seqpage .= "</div>\n";
  472. $seqpage .= "</div>\n";
  473. return $seqpage;
  474. }
  475. // ------------------------------------------------------
  476. // Ouverture de la fenêtre modale pour ajout/modification
  477. // ------------------------------------------------------
  478. function fenetreModaleDebut($param, $scriptName, $jeton) {
  479. $output = " <script type='text/javascript'>\n";
  480. // Préparation de la fonction Javascript
  481. // -------------------------------------
  482. $output .= "function mettrevaleurdansid(";
  483. $compteur = 0;
  484. $car = "";
  485. foreach ($param["champs"] as &$valeur) {
  486. if ($compteur > 0) {
  487. $car = ", ";
  488. }
  489. $output .= $car . $valeur;
  490. $compteur++;
  491. }
  492. unset($valeur);
  493. $output .= "){\n";
  494. foreach ($param["champs"] as &$valeur) {
  495. $output .= " if (" . $valeur . "!=\"\") $(\"#" . $valeur . "\").val(" . $valeur . ");\n";
  496. }
  497. unset($valeur);
  498. $output .= " overlay();\n";
  499. $output .= "}\n";
  500. // Fermeture à la jQuery
  501. // ---------------------
  502. $output .= "function fermerfenetremodale() {\n";
  503. $output .= " $('#fenetremodale').dialog('close');\n";
  504. $output .= "}\n";
  505. // Ouverture à la jQuery
  506. // ---------------------
  507. $output .= "$(document).ready(function() {\n";
  508. $output .= " $(\"#fenetremodale\").css(\"visibility\",\"visible\");";
  509. $output .= "});";
  510. $output .= "</script>\n";
  511. $output .= "<div id='fenetremodale' style='display:none;'>\n";
  512. $output .= "<table width='100%' border='0' >\n";
  513. $output .= "<tr>\n";
  514. $output .= "<td align='center' width='100%'>\n";
  515. $output .= "<div style='background:#f2f6f7'>\n";
  516. // Exécution de l'envoi des données du formulaire
  517. // ----------------------------------------------
  518. $output .= "<form action='" . $scriptName . "?page=" . $param["nom"];
  519. $output .= "&jeton=" . $jeton . "' method='post' id='frmModif' name='frmModif' "; //>\n";
  520. if (isset($param["validation"])) {
  521. $output .= " onSubmit='return ValidationFormulaire();'";
  522. }
  523. $output .= ">\n";
  524. $output .= "<table width='100%'>\n";
  525. $output .= "<tr>\n";
  526. $output .= "<td colspan='2'>\n";
  527. $output .= "<table width='100%'>\n";
  528. $output .= "<tr>\n";
  529. $output .= "</tr>\n";
  530. $output .= "</table>\n";
  531. $output .= "</td>\n";
  532. $output .= "</tr>\n";
  533. return $output;
  534. }
  535. // ------------------------------
  536. // Fermeture de la fenêtre modale
  537. // ------------------------------
  538. function fenetreModaleFin($titre) {
  539. $output = " <tr>\n";
  540. $output .= " <td colspan='2' style='text-align:center; height:50px'>\n";
  541. if (is_array($titre)) {
  542. foreach ($titre as $clef) {
  543. $output .= "<input class='styled' type=\"submit\" id='boutonaction' ";
  544. $output .= "name=\"action\" value=\"" . $clef . "\">&nbsp;\n";
  545. }
  546. } elseif ($titre != '') {
  547. $output .= " <input class='styled' type=\"submit\" id='boutonaction' ";
  548. $output .= "name=\"action\" value=\"" . $titre . "\">\n";
  549. }
  550. $output .= " <input class='styled' type=\"button\" id='boutonaction' value=\"Annuler\" ";
  551. $output .= "onclick='fermerfenetremodale();'>&nbsp;\n</td>\n" . " </tr>\n";
  552. $output .= " </table>\n" . " </form>\n";
  553. $output .= " </div>\n" . " </td>\n";
  554. $output .= " </tr>\n" . " </table>\n";
  555. $output .= "</div>\n";
  556. return $output;
  557. }
  558. // -------------------------------
  559. // Création d'une liste déroulante
  560. // -------------------------------
  561. function formListbox($nomformulaire, $nomliste, $etiquette, $valeurdefaut, $donnees, $eventhandler = "", $entete = "oui", $style = 'width:8.6cm;') {
  562. $listbox = $etiquette;
  563. $listbox .= "<select name='" . $nomliste . "' id='" . $nomliste;
  564. $listbox .= "' class='Style12' style='$style' size='1' ";
  565. $listbox .= ($eventhandler !== "") ? $eventhandler : "onchange=\"verifiechangement('" . $nomliste . "','" . $nomformulaire . "');\"";
  566. $listbox .= ">\n";
  567. $listbox2 = "";
  568. $condition = false;
  569. foreach ($donnees as &$ligne) {
  570. $listbox2 .= "<option value='" . $ligne["refid"] . "' ";
  571. if ($ligne["refid"] == $valeurdefaut) {
  572. $listbox2 .= "selected='selected'";
  573. $condition = true;
  574. }
  575. $listbox2 .= ">";
  576. $listbox2 .= htmlentities($ligne["valeur"], ENT_SUBSTITUTE, "UTF-8") . "</option>\n";
  577. }
  578. unset($ligne);
  579. $listbox .= "<option value=-1";
  580. if (!$condition) {
  581. $listbox .= " selected='selected'";
  582. }
  583. $listbox .= ">";
  584. $listbox .= "--------------------</option>\n";
  585. $listbox .= $listbox2;
  586. $listbox .= "</select>\n";
  587. return $listbox;
  588. }
  589. // Fonction dérivée de formlistbox
  590. // -------------------------------
  591. function formListbox2($param) {
  592. $nomformulaire = $param["form"];
  593. $nomliste = $param["nom"];
  594. $etiquette = $param["etq"];
  595. $valeurdefaut = $param["defaut"];
  596. $donnees = $param["donnees"];
  597. $event = (isset($param["evt"])) ? $event = $param["evt"] : "";
  598. $entete = (isset($param["entete"])) ? $entete = $param["entete"] : "oui";
  599. $style = (isset($param["style"]) ? $param["style"] : "");
  600. return formListbox($nomformulaire, $nomliste, $etiquette, $valeurdefaut, $donnees, $event, $entete, $style);
  601. }
  602. // --------------------------------------------------------------------------
  603. // Fonction de préparation du bouton Modifier selon les champs du formulaire
  604. // --------------------------------------------------------------------------
  605. function prepareBoutonModifier($param) {
  606. $output = "<INPUT class='modifier' title='Modifier' id='Modifier' TYPE='button' ";
  607. $output .= "style='width:24px;' VALUE='Modifier' ";
  608. $output .= "onclick='changetitre(2);";
  609. $output .= "mettrevaleurdansid(";
  610. $a = 0;
  611. foreach ($param as &$valeur) {
  612. if ($a != 0 && $a <= count($param) - 1) {
  613. $output .= ",";
  614. }
  615. $output .= "\"" . str_replace("'", "&apos;", htmlentities(stripslashes($valeur), ENT_SUBSTITUTE, "UTF-8")) . "\"";
  616. $a++;
  617. }
  618. unset($valeur);
  619. $output .= ");'>";
  620. return $output;
  621. }
  622. // ------------------------------------------------------------------------------
  623. // Fonction d'écriture d'une chaîne de lettre limitée à la tauille de la cellule.
  624. // ------------------------------------------------------------------------------
  625. function ecrireTexteLimite($chaine, $largeur) {
  626. $output = "<div class='depasselargeur' style='width:" . $largeur . "px' title=\"";
  627. $output .= htmlentities($chaine, ENT_SUBSTITUTE, "UTF-8") . "\">";
  628. $output .= htmlentities($chaine, ENT_SUBSTITUTE, "UTF-8") . "</div>\n";
  629. return $output;
  630. }
  631. // -------------------------------------------------------------------------------
  632. // Fonction d'écriture d'une adresse de courriel limitée à un nombre de caractères
  633. // -------------------------------------------------------------------------------
  634. function ecrireMailToLimite($chaine, $largeur) {
  635. $output = "<div class='depasselargeur' style='width:" . $largeur . "px'>";
  636. if (strlen(trim($chaine)) > 0) {
  637. $output .= "<a class='lien' href='mailto:$chaine' title='";
  638. $output .= htmlentities($chaine, ENT_SUBSTITUTE, "UTF-8") . "'>";
  639. $output .= htmlentities($chaine, ENT_SUBSTITUTE, "UTF-8") . "</a>";
  640. } else {
  641. $output .= "<a class='lien' href='mailto:$chaine' title=''></a>";
  642. }
  643. $output .= "</div>\n";
  644. return $output;
  645. }