1 |
nhaye |
2483 |
<?php |
2 |
|
|
/** |
3 |
|
|
* Ce script permet de gerer l'affichage du formulaire |
4 |
|
|
* |
5 |
|
|
* @package openmairie_exemple |
6 |
|
|
* @version SVN : $Id: form.php 2517 2013-10-18 10:12:45Z softime $ |
7 |
|
|
*/ |
8 |
|
|
|
9 |
|
|
require_once "../obj/utils.class.php"; |
10 |
|
|
$f = new utils("nohtml"); |
11 |
|
|
|
12 |
|
|
/** |
13 |
|
|
* Initialisation des variables |
14 |
|
|
*/ |
15 |
|
|
// Nom de l'objet metier du formulaire |
16 |
|
|
(isset($_GET['obj']) ? $obj = $_GET['obj'] : $obj = ""); |
17 |
|
|
// Identifiant de l'objet metier du formulaire et mode d'ajout |
18 |
|
|
if (isset($_GET['idx']) and $_GET['idx'] != '') { |
19 |
|
|
$idx = $_GET['idx']; |
20 |
|
|
|
21 |
|
|
if (isset($_GET['action']) and $_GET['action'] != '') { |
22 |
|
|
$maj = $_GET['action']; |
23 |
|
|
|
24 |
|
|
if ($maj == 0) { |
25 |
|
|
$idx = "]"; |
26 |
|
|
} |
27 |
|
|
|
28 |
|
|
} else { |
29 |
|
|
(isset($_GET['ids']) ? $maj = 2 : $maj = 1); |
30 |
|
|
} |
31 |
|
|
} else { |
32 |
|
|
$maj = 0; |
33 |
|
|
$idx = "]"; |
34 |
|
|
} |
35 |
|
|
// Flag de validation du formulaire |
36 |
|
|
(isset($_GET['validation']) ? $validation = $_GET['validation'] : $validation = 0); |
37 |
|
|
// Libelle de l'enregistement du formulaire |
38 |
|
|
(isset($_GET['idz']) ? $idz = $_GET['idz'] : $idz = ""); |
39 |
|
|
// Premier enregistrement a afficher sur le tableau de la page precedente (tab.php?premier=) |
40 |
|
|
(isset($_GET['premier']) ? $premier = $_GET['premier'] : $premier = 0); |
41 |
|
|
// Colonne choisie pour le tri sur le tableau de la page precedente (tab.php?tricol=) |
42 |
|
|
(isset($_GET['tricol']) ? $tricol = $_GET['tricol'] : $tricol = ""); |
43 |
|
|
// Colonne choisie pour la selection sur le tableau de la page precedente (tab.php?selectioncol=) |
44 |
|
|
(isset($_GET['selectioncol']) ? $selectioncol = $_GET['selectioncol'] : $selectioncol = ""); |
45 |
|
|
// Id unique de la recherche avancee |
46 |
|
|
(isset($_GET['advs_id']) ? $advs_id = $_GET['advs_id'] : $advs_id = ""); |
47 |
|
|
// Valilite des objets a afficher |
48 |
|
|
(isset($_GET['valide']) ? $valide = $_GET['valide'] : $valide = ""); |
49 |
|
|
// Origine de l'action |
50 |
|
|
(isset($_GET['retour']) ? $retour = $_GET['retour'] : $retour = ""); |
51 |
|
|
// objet de sous-form |
52 |
|
|
(isset($_GET['direct_form']) ? $direct_form = $_GET['direct_form'] : $direct_form = ""); |
53 |
|
|
// idx de sous-form |
54 |
|
|
(isset($_GET['direct_idx']) ? $direct_idx = $_GET['direct_idx'] : $direct_idx = ""); |
55 |
|
|
// action sur le sous-form |
56 |
|
|
(isset($_GET['direct_action']) ? $direct_action = $_GET['direct_action'] : $direct_action = ""); |
57 |
|
|
// Chaine recherchee |
58 |
|
|
if (isset($_GET['recherche'])) { |
59 |
|
|
$recherche = $_GET['recherche']; |
60 |
|
|
if (get_magic_quotes_gpc()) { |
61 |
|
|
$recherche1 = StripSlashes($recherche); |
62 |
|
|
} else { |
63 |
|
|
$recherche1 = $recherche; |
64 |
|
|
} |
65 |
|
|
} else { |
66 |
|
|
$recherche = ""; |
67 |
|
|
$recherche1 = ""; |
68 |
|
|
} |
69 |
|
|
// Ce tableau permet a chaque application de definir des variables |
70 |
|
|
// supplementaires qui seront passees a l'objet metier dans le constructeur |
71 |
|
|
// a travers ce tableau |
72 |
|
|
// Voir le fichier dyn/form.get.specific.inc.php pour plus d'informations |
73 |
|
|
$extra_parameters = array(); |
74 |
|
|
if (file_exists("../dyn/form.get.specific.inc.php")) { |
75 |
|
|
require "../dyn/form.get.specific.inc.php"; |
76 |
|
|
} |
77 |
|
|
|
78 |
|
|
/** |
79 |
|
|
* Verification des parametres |
80 |
|
|
*/ |
81 |
|
|
if (strpos($obj, "/") !== false |
82 |
|
|
|| ! ( file_exists("../sql/".$f->phptype."/".$obj.".inc.php") |
83 |
|
|
|| file_exists("../sql/".$f->phptype."/".$obj.".inc")) |
84 |
|
|
|| !file_exists("../obj/".$obj.".class.php")) { |
85 |
|
|
$class = "error"; |
86 |
|
|
$message = _("L'objet est invalide."); |
87 |
|
|
$f->addToMessage($class, $message); |
88 |
|
|
$f->setFlag(NULL); |
89 |
|
|
$f->display(); |
90 |
|
|
die(); |
91 |
|
|
} |
92 |
|
|
|
93 |
|
|
// Dictionnaire des actions |
94 |
|
|
// ------------------------ |
95 |
|
|
|
96 |
|
|
// Declaration du dictionnaire |
97 |
|
|
$portlet_actions = array(); |
98 |
|
|
|
99 |
|
|
if ($maj == 3) { |
100 |
|
|
|
101 |
|
|
// Action : modifier |
102 |
|
|
$portlet_actions['modifier'] = |
103 |
|
|
array('lien' => 'form.php?obj='.$obj.'&action=1'.'&idx=', |
104 |
|
|
'id' => '&idz='.$idz.'&premier='.$premier.'&advs_id='.$advs_id.'&recherche='.$recherche1.'&tricol='.$tricol.'&selectioncol='.$selectioncol.'&valide='.$valide.'&retour=form', |
105 |
|
|
'lib' => '<span class="om-prev-icon om-icon-16 edit-16" title="'._('Modifier').'">'._('Modifier').'</span>', |
106 |
|
|
'rights' => array('list' => array($obj, $obj.'_modifier'), 'operator' => 'OR'), |
107 |
|
|
'ordre' => 10,); |
108 |
|
|
|
109 |
|
|
// Action : supprimer |
110 |
|
|
$portlet_actions['supprimer'] = |
111 |
|
|
array('lien' => 'form.php?obj='.$obj.'&action=2&idx=', |
112 |
|
|
'id' => '&idz='.$idz.'&premier='.$premier.'&advs_id='.$advs_id.'&recherche='.$recherche1.'&tricol='.$tricol.'&selectioncol='.$selectioncol.'&valide='.$valide.'&retour=form', |
113 |
|
|
'lib' => '<span class="om-prev-icon om-icon-16 delete-16" title="'._('Supprimer').'">'._('Supprimer').'</span>', |
114 |
|
|
'rights' => array('list' => array($obj, $obj.'_supprimer'), 'operator' => 'OR'), |
115 |
|
|
'ordre' => 20,); |
116 |
|
|
} |
117 |
|
|
|
118 |
|
|
/** |
119 |
|
|
* |
120 |
|
|
*/ |
121 |
|
|
// Initialisation des variables presentes dans le fichier inclus juste apres |
122 |
|
|
$table = ""; |
123 |
|
|
$ico = ""; |
124 |
|
|
$ent = ""; |
125 |
|
|
|
126 |
|
|
// Type d'affichage de la page |
127 |
|
|
// include ? |
128 |
|
|
$display_accordion = false; |
129 |
|
|
$display_tabs=true; |
130 |
|
|
if( $_SESSION["layout"]=="jquerymobile"){ |
131 |
|
|
$display_accordion = true; |
132 |
|
|
$display_tabs=false; |
133 |
|
|
} |
134 |
|
|
// |
135 |
|
|
|
136 |
|
|
// surcharge globale |
137 |
|
|
if (file_exists('../dyn/form.inc.php')) { |
138 |
|
|
require_once '../dyn/form.inc.php'; |
139 |
|
|
} |
140 |
|
|
|
141 |
|
|
// surcharge specifique des objets |
142 |
|
|
if (file_exists("../sql/".$f->phptype."/".$obj.".inc.php")) { |
143 |
|
|
require( "../sql/".$f->phptype."/".$obj.".inc.php"); |
144 |
|
|
} else { |
145 |
|
|
require( "../sql/".$f->phptype."/".$obj.".inc"); |
146 |
|
|
} |
147 |
|
|
|
148 |
|
|
// Inclusion de la classe objet |
149 |
|
|
require_once "../obj/".$obj.".class.php"; |
150 |
|
|
// Instanciation de l'objet metier |
151 |
|
|
$enr = new $obj($idx, $f->db, 0); |
152 |
|
|
// Incrementation du compteur de validation du formulaire |
153 |
|
|
$validation++; |
154 |
|
|
// Enclenchement de la tamporisation de sortie |
155 |
|
|
ob_start(); |
156 |
|
|
// Appel de la methode formulaire |
157 |
|
|
$enr->formulaire("", $validation, $maj, $f->db, $_POST, $obj, 0, $idx, |
158 |
|
|
$premier, $recherche, $tricol, $idz, $selectioncol, $advs_id, |
159 |
|
|
$valide, $retour, $portlet_actions, $extra_parameters); |
160 |
|
|
// Affecte le contenu courant du tampon de sortie a $return puis l'efface |
161 |
|
|
$return = ob_get_clean(); |
162 |
|
|
|
163 |
|
|
// Récupère le fil d'Ariane |
164 |
|
|
$ent = $enr->getFormTitle($ent); |
165 |
|
|
|
166 |
|
|
/** |
167 |
|
|
* Affichage de la structure de la page |
168 |
|
|
*/ |
169 |
|
|
// Verification des credentials de l'utilisateur |
170 |
|
|
$right_suffix = "_"; |
171 |
|
|
switch ($maj) { |
172 |
|
|
case "0" : $right_suffix .= "ajouter"; break; |
173 |
|
|
case "1" : $right_suffix .= "modifier"; break; |
174 |
|
|
case "2" : $right_suffix .= "supprimer"; break; |
175 |
|
|
case "3" : $right_suffix .= "consulter"; break; |
176 |
|
|
} |
177 |
|
|
$f->isAuthorized(array($obj.$right_suffix, $obj), "OR"); |
178 |
|
|
// Affichage du titre |
179 |
|
|
$f->setTitle($ent); |
180 |
|
|
$f->setIcon($ico); |
181 |
|
|
$f->setHelp($obj); |
182 |
|
|
// Affichage des elements |
183 |
|
|
$f->setFlag(NULL); |
184 |
|
|
$f->display(); |
185 |
|
|
|
186 |
|
|
/** |
187 |
|
|
* |
188 |
|
|
*/ |
189 |
|
|
// |
190 |
|
|
echo "<div id=\"formulaire\">\n\n"; |
191 |
|
|
|
192 |
|
|
// Si formulaire en mode ajout et formulaire valide et enregistrement correct |
193 |
|
|
// alors on recupere $idx pour le passer aux sous formulaires |
194 |
|
|
if ($maj == 0 and $validation>1 and $enr->correct==1 and $idx ==']') { |
195 |
|
|
$idx = $enr->valF[$enr->clePrimaire]; |
196 |
|
|
} |
197 |
|
|
|
198 |
|
|
//premier onglet |
199 |
|
|
|
200 |
|
|
/** |
201 |
|
|
* Affichage du titre du tableau dans un onglet ou sous une autre forme selon |
202 |
|
|
* le layout |
203 |
|
|
*/ |
204 |
|
|
// |
205 |
|
|
if (isset($form_title)) { |
206 |
|
|
// |
207 |
|
|
$param = $form_title; |
208 |
|
|
} elseif (isset($tab_title)) { |
209 |
|
|
// |
210 |
|
|
$param = $tab_title; |
211 |
|
|
} else { |
212 |
|
|
// |
213 |
|
|
$param = _($obj); |
214 |
|
|
} |
215 |
|
|
$f->layout->display_form_lien_onglet_un($param); |
216 |
|
|
|
217 |
|
|
|
218 |
|
|
// Affichage des sous formulaires en onglets |
219 |
|
|
$tabs = array(); |
220 |
|
|
if (isset($sousformulaire) and $display_tabs) { |
221 |
|
|
// |
222 |
|
|
|
223 |
|
|
foreach ($sousformulaire as $elem) { |
224 |
|
|
// |
225 |
|
|
if ($f->isAccredited(array($elem, $elem."_tab"), "OR") == false) { |
226 |
|
|
continue; |
227 |
|
|
} |
228 |
|
|
// |
229 |
|
|
$tabs[] = $elem; |
230 |
|
|
// ouverture lien onglet |
231 |
|
|
echo "\t\t<li>"; |
232 |
|
|
echo "<a id=\"".$elem."\""; |
233 |
|
|
// |
234 |
|
|
if (isset($sousformulaire_parameters[$elem]["href"])) { |
235 |
|
|
echo " href=\"".$sousformulaire_parameters[$elem]["href"]."?retourformulaire=".$obj."&idxformulaire=".$idx."\">"; |
236 |
|
|
} else { |
237 |
|
|
echo " href=\"../scr/soustab.php?obj=".$elem."&retourformulaire=".$obj."&idxformulaire=".$idx."\">"; |
238 |
|
|
} |
239 |
|
|
// |
240 |
|
|
if (isset($sousformulaire_parameters[$elem]["title"])) { |
241 |
|
|
echo $sousformulaire_parameters[$elem]["title"]; |
242 |
|
|
} else { |
243 |
|
|
echo _($elem); |
244 |
|
|
} |
245 |
|
|
// fermeture lien onglet |
246 |
|
|
echo "</a>"; |
247 |
|
|
echo "</li>\n"; |
248 |
|
|
|
249 |
|
|
|
250 |
|
|
} |
251 |
|
|
} |
252 |
|
|
if ($display_accordion == false){ |
253 |
|
|
// Affichage de la recherche pour les sous formulaires |
254 |
|
|
$link = "soustab.php?retourformulaire=".$obj."&idxformulaire=".$idx; |
255 |
|
|
$param = array("link" => $link); |
256 |
|
|
$f->layout->display_form_recherche_sousform($param); |
257 |
|
|
} |
258 |
|
|
// Fermeture de la liste des onglets |
259 |
|
|
echo "\t</ul>\n\n"; |
260 |
|
|
|
261 |
|
|
|
262 |
|
|
// Ouverture de la balise - Onglet 1 |
263 |
|
|
echo "\t<div id=\"tabs-1\">\n\n"; |
264 |
|
|
|
265 |
|
|
// Affichage du retour de la methode formulaire |
266 |
|
|
echo $return; |
267 |
|
|
|
268 |
|
|
// Javascript pour la desactivation des onglets lorsque necessaire |
269 |
|
|
if ($maj == 0 and $enr->correct == false or $maj == 2 ) { |
270 |
|
|
echo "<script type=\"text/javascript\">"; |
271 |
|
|
echo "$(function() {"; |
272 |
|
|
echo "$(\"#formulaire\").tabs(\"option\", \"disabled\", ["; |
273 |
|
|
foreach($tabs as $key => $tab) { |
274 |
|
|
echo ($key+1); |
275 |
|
|
if (count($tabs) > $key + 1 ) { |
276 |
|
|
echo ","; |
277 |
|
|
} |
278 |
|
|
} |
279 |
|
|
echo "]);"; |
280 |
|
|
echo "});"; |
281 |
|
|
echo "</script>"; |
282 |
|
|
} elseif(in_array($direct_form,$tabs)) { |
283 |
|
|
// si le parametre direct_form est dans la liste des sous tab |
284 |
|
|
echo "<script type=\"text/javascript\">"; |
285 |
|
|
echo "$(function() {"; |
286 |
|
|
if($direct_idx!="") { |
287 |
|
|
echo "waitUntilExists('sousform-".$direct_form."',function(){ |
288 |
|
|
// si un idx est defini on charge le formulaire de l'objet correspondant |
289 |
|
|
ajaxIt('".$direct_form."','../scr/sousform.php?obj=".$direct_form. |
290 |
|
|
"&action=3&idx=".$direct_idx."&retourformulaire=".$obj."&idxformulaire=".$idx."&action=".$direct_action."'); |
291 |
|
|
})('sousform-".$direct_form."');"; |
292 |
|
|
} |
293 |
|
|
echo "});"; |
294 |
|
|
|
295 |
|
|
echo "</script>"; |
296 |
|
|
} |
297 |
|
|
|
298 |
|
|
// Affichage des sous formulaires en accordeon sous le formulaire |
299 |
|
|
|
300 |
|
|
if ($display_accordion) { |
301 |
|
|
|
302 |
|
|
if ($maj == 1 or $maj == 3 or ($maj == 0 and $validation>1 and $enr->correct==1 and $idx ==']')){ |
303 |
|
|
if (isset ($sousformulaire)) { |
304 |
|
|
echo "<div class=\"visualClear\"><!-- --></div>"; |
305 |
|
|
$f->layout->display_form_start_conteneur_onglets_accordion(); |
306 |
|
|
echo "<h3>"; |
307 |
|
|
// Affichage de la recherche pour les sous formulaires |
308 |
|
|
$link = "soustab.php?retourformulaire=".$obj."&idxformulaire=".$idx; |
309 |
|
|
$param = array("link" => $link); |
310 |
|
|
$f->layout->display_form_recherche_sousform_accordion($param); |
311 |
|
|
foreach ($sousformulaire as $elem) { |
312 |
|
|
$f->layout->display_form_start_conteneur_chaque_onglet_accordion(); |
313 |
|
|
|
314 |
|
|
// A VOIR AND ????????????????????????????????????????????????? |
315 |
|
|
if (isset($sousformulaire_parameters[$elem]["href"]) and isset($sousformulaire_parameters[$elem]["href"])) { |
316 |
|
|
$params = array( |
317 |
|
|
"elem" => $elem, |
318 |
|
|
"href" => $sousformulaire_parameters[$elem]["href"], |
319 |
|
|
"idx" =>$idx, |
320 |
|
|
"obj" =>$obj, |
321 |
|
|
"title" =>$sousformulaire_parameters[$elem]["title"] |
322 |
|
|
); |
323 |
|
|
} else { |
324 |
|
|
$params = array( |
325 |
|
|
"elem" => $elem, |
326 |
|
|
"idx" =>$idx, |
327 |
|
|
"obj" =>$obj |
328 |
|
|
); |
329 |
|
|
} |
330 |
|
|
|
331 |
|
|
$f->layout->display_form_lien_onglet_accordion($params); |
332 |
|
|
echo "<div id=\"sousform-$elem\">"; |
333 |
|
|
// |
334 |
|
|
echo "</div>"; |
335 |
|
|
$f->layout->display_form_close_conteneur_chaque_onglet_accordion(); |
336 |
|
|
// |
337 |
|
|
} |
338 |
|
|
// |
339 |
|
|
$f->layout->display_form_close_conteneur_onglets_accordion(); |
340 |
|
|
// |
341 |
|
|
} |
342 |
|
|
} |
343 |
|
|
} |
344 |
|
|
|
345 |
|
|
// Fermeture de la balise - Onglet 1 |
346 |
|
|
echo "\n\t</div>\n"; |
347 |
|
|
|
348 |
|
|
// Fermeture de la balise - Conteneur d'onglets |
349 |
|
|
echo "</div>\n"; |
350 |
|
|
|
351 |
|
|
?> |