source: spip-zone/_plugins_branche_stable_/_spip_1_9_1_/Forms/exec/forms_edit.php @ 5413

Last change on this file since 5413 was 5413, checked in by renato@…, 15 years ago

i18n of form plugin. Translation in Italian. Fix info box about answers when editing a form

File size: 28.1 KB
Line 
1<?php
2/*
3 * forms
4 * version plug-in de spip_form
5 *
6 * Auteur :
7 * Antoine Pitrou
8 * adaptation en 182e puis plugin par cedric.morin@yterium.com
9 * © 2005,2006 - Distribue sous licence GNU/GPL
10 *
11 */
12
13include_spip('inc/forms');
14
15function bloc_edition_champ($t, $link) {
16        global $couleur_claire;
17
18        $code = $t['code'];
19        $obligatoire = $t['obligatoire'];
20        $type = $t['type'];
21        $type_ext = $t['type_ext'];
22
23        if ($type != 'separateur'){
24                $checked = ($obligatoire == 'oui') ? " checked='checked'" : "";
25                echo "&nbsp; &nbsp; <input type='checkbox' name='champ_obligatoire' value='oui' id='obli_$code'$checked> ";
26                echo "<label for='obli_$code'>"._T("forms:edit_champ_obligatoire")."</label>";
27                echo "<br />\n";
28        }
29
30        if ($type == 'url') {
31                $checked = ($t['verif'] == 'oui') ? " checked='checked'" : "";
32                echo "&nbsp; &nbsp; <input type='checkbox' name='champ_verif' value='oui' id='verif_$code'$checked> ";
33                echo "<label for='verif_$code'>"._T("forms:verif_web")."</label>";
34                echo "<br />\n";
35        }
36        if ($type == 'select' || $type == 'multiple') {
37                global $ajout_choix;
38
39                echo "<div style='margin: 5px; padding: 5px; border: 1px dashed $couleur_claire;'>";
40                echo _T("forms:liste_choix")."&nbsp;:<br />\n";
41                foreach ($type_ext as $code_choix => $nom_choix) {
42                        if ($ajout_choix == $code_choix) {
43                                echo "<script type='text/javascript'><!-- \nvar antifocus_choix= false; // --></script>\n";
44                                $js = " onfocus=\"if(!antifocus_choix){this.value='';antifocus_choix=true;}\"";
45                        }
46                        else $js = "";
47                        echo "<input type='text' name='$code_choix' value=\"".entites_html($nom_choix)."\" ".
48                                "class='fondl verdana2' size='20'$js>";
49                        //
50                        echo " <input style='display: none;' type='submit' name='modif_choix' value=\""._T('bouton_modifier')."\" class='fondo verdana2'>";
51                        $supp_link = $link;
52                        $supp_link = parametre_url($supp_link,'supp_choix', $code_choix);
53                        echo " &nbsp; <span class='verdana1'>[<a href='".$supp_link."#champ_visible'>".
54                                _T("forms:supprimer_choix")."</a>]</span>";
55                        echo "<br />\n";
56                }
57                echo "<br /><input type='submit' name='ajout_choix' value=\""._T("forms:ajouter_choix")."\" class='fondo verdana2'>";
58
59                echo "</div>";
60                if ($type=='select')
61                        echo "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_multiple")."\" class='fondl verdana2'>";
62                if ($type=='multiple')
63                        echo "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_unique")."\" class='fondl verdana2'>";
64                echo "<br />\n";
65        }
66        if ($type == 'mot') {
67                echo "<label for='groupe_$code'>"._T("forms:champ_nom_groupe")."</label> :";
68                echo " &nbsp;<select name='groupe_champ' value='0' id='groupe_$code' class='fondo verdana2'>\n";
69                $query = "SELECT * FROM spip_groupes_mots ORDER BY titre";
70                $result = spip_query($query);
71                while ($row = spip_fetch_array($result)) {
72                        $id_groupe = $row['id_groupe'];
73                        $titre_groupe = supprimer_tags(typo($row['titre']));
74                        $selected = ($id_groupe == $type_ext['id_groupe']) ? " selected='selected'": "";
75                        echo "<option value='$id_groupe'$selected>$titre_groupe</option>\n";
76                }
77                echo "</select>";
78                echo "<br />\n";
79        }
80        if ($type == 'fichier') {
81                $taille = intval($type_ext['taille']);
82                if (!$taille) $taille = '';
83                echo "<label for='taille_$code'>"._T("forms:taille_max")."</label> : ";
84                echo "<input type='text' name='taille_champ' value='$taille' id='taille_$code' class='fondo verdana2'>\n";
85                echo "<br />\n";
86        }
87}
88
89function modif_edition_champ($t) {
90        $type = $t['type'];
91        $type_ext = &$t['type_ext'];
92        $code = $t['code'];
93       
94        if ($type == 'url') {
95                global $champ_verif;
96                if ($champ_verif) $t['verif'] = $champ_verif;
97                else unset($t['verif']);
98        }
99        if ($type == 'select' || $type == 'multiple') {
100                global $ajout_choix, $supp_choix;
101                if ($ajout_choix) {
102                        $n = 1;
103                        $code_choix = $code.'_'.$n;
104                        while (isset($type_ext[$code_choix]))
105                                $code_choix = $code.'_'.(++$n);
106                        $type_ext[$code_choix] = _T("forms:nouveau_choix");
107                        $ajout_choix = $code_choix;
108                }
109                foreach ($type_ext as $code_choix => $nom_choix) {
110                        if (isset($GLOBALS[$code_choix]))
111                                $type_ext[$code_choix] = $GLOBALS[$code_choix];
112                }
113                /*if ($supp_choix) {
114                        unset($type_ext[$supp_choix]);
115                }*/
116        }
117        if ($type == 'mot') {
118                if ($id_groupe = intval($GLOBALS['groupe_champ']))
119                        $type_ext['id_groupe'] = $id_groupe;
120        }
121        if ($type == 'fichier') {
122                $type_ext['taille'] = intval($GLOBALS['taille_champ']);
123        }
124       
125        return $t;
126}
127
128function code_nouveau_champ($structure,$type){
129        $n = 1;
130        $code = $type.'_'.strval($n);
131        foreach ($structure as $t) {
132                list($letype, $lenumero) = split('_', $t['code'] );
133                if ($type == $letype)
134                {
135                        $lenumero = intval($lenumero);
136                        if ($lenumero>= $n)
137                                $n=$lenumero+1;
138                        $code = $type.'_'.strval($n);
139                }
140        }
141        return $code;
142}
143
144function forms_update(){
145        $id_form = intval(_request('id_form'));
146        $new = _request('new');
147        $supp_form = intval(_request('supp_form'));
148        $modif_champ = _request('modif_champ');
149        $ajout_champ = _request('ajout_champ');
150        $retour = _request('retour');
151        $titre = _request('titre');
152        $descriptif = _request('descriptif');
153        $email = _request('email');
154        $champconfirm = _request('champconfirm');
155        $texte = _request('texte');
156        $sondage = _request('sondage');
157        $nom_champ = _request('nom_champ');
158        $champ_obligatoire = _request('champ_obligatoire');
159        $monter = _request('monter');
160        $descendre = _request('descendre');
161        $supp_choix = _request('supp_choix');
162        $supp_champ = _request('supp_champ');
163        $supp_confirme = _request('supp_confirme');
164        $supp_rejet = _request('supp_rejet');
165
166        //
167        // Modifications des donnees de base du formulaire
168        //
169        if (Forms_form_administrable($id_form)) {
170                if ($supp_form = intval($supp_form) AND $supp_confirme AND !$supp_rejet) {
171                        $query = "DELETE FROM spip_forms WHERE id_form=$supp_form";
172                        $result = spip_query($query);
173                        if ($retour) {
174                                $retour = urldecode($retour);
175                                Header("Location: $retour");
176                                exit;
177                        }
178                }
179        }
180       
181        $nouveau_champ = $champ_visible = NULL;
182
183        $structure = array();
184        if (Forms_form_editable($id_form)) {
185                // creation
186                if ($new == 'oui' && $titre) {
187                        $structure = array();
188                        spip_query("INSERT INTO spip_forms (structure) VALUES ('".
189                                addslashes(serialize($structure))."')");
190                        $id_form = spip_insert_id();
191                        unset($new);
192                }
193                // maj
194                if ($id_form && $titre) {
195                        $query = "UPDATE spip_forms SET ".
196                                "titre='".addslashes($titre)."', ".
197                                "descriptif='".addslashes($descriptif)."', ".
198                                "sondage='".addslashes($sondage)."', ".
199                                "email='".addslashes(serialize($email))."', ".
200                                "champconfirm='".addslashes($champconfirm)."', ".
201                                "texte='".addslashes($texte)."' ".
202                                "WHERE id_form=$id_form";
203                        $result = spip_query($query);
204                }
205                // lecture
206                $query = "SELECT * FROM spip_forms WHERE id_form=$id_form";
207                $result = spip_query($query);
208                if ($row = spip_fetch_array($result)) {
209                        $id_form = $row['id_form'];
210                        $titre = $row['titre'];
211                        $descriptif = $row['descriptif'];
212                        $sondage = $row['sondage'];
213                        $structure = unserialize($row['structure']);
214                        $email = unserialize($row['email']);
215                        $champconfirm = $row['champconfirm'];
216                        $texte = $row['texte'];
217                }
218        }       
219       
220        if ($id_form && Forms_form_editable($id_form)) {
221                $modif_structure = false;
222                $champ_visible = NULL;
223                // Ajout d'un champ
224                if (($type = $ajout_champ) && Forms_types_champs_autorises($type)) {
225                        $code = code_nouveau_champ($structure,$type);
226                        $nom = _T("forms:nouveau_champ");
227                        $structure[] = array('code' => $code, 'nom' => $nom, 'type' => $type, 'type_ext' => array());
228                        $champ_visible = $nouveau_champ = $code;
229                        $modif_structure = true;
230                }
231                // Modif d'un champ
232                if ($code = $modif_champ) {
233                        unset($index);
234                        foreach ($structure as $index => $t) {
235                                if ($code == $t['code']) break;
236                        }
237                        if (isset($index)) {
238                                // switch select to multi ou inversement
239                                if (isset($_POST['switch_select_multi'])){
240                                        if ($t['type']=='select') $newtype = 'multiple';
241                                        if ($t['type']=='multiple') $newtype = 'select';
242                                       
243                                        $newcode = code_nouveau_champ($structure,$newtype);
244                                        $t['type'] = $newtype;
245                                        $new_type_ext = array();
246                                        foreach($t['type_ext'] as $key=>$type_ext)
247                                                $new_type_ext[str_replace($t['code'],$newcode,$key)] = $type_ext;
248                                        $t['code'] = $newcode;
249                                        $t['type_ext'] = $new_type_ext;
250                                }
251                                $t['nom'] = $nom_champ;
252                                $t['obligatoire'] = $champ_obligatoire;
253                                $t = modif_edition_champ($t);
254                                if (!$t['type_ext']) $t['type_ext'] = array();
255                                $structure[$index] = $t;
256                                $modif_structure = true;
257                        }
258                        $champ_visible = $code;
259                }
260                // Cas particulier : ajout / suppression d'un choix
261                /*if ($code = $ajout_choix) {
262                        unset($index);
263                        foreach ($structure as $index => $t) {
264                                if ($code == $t['code']) break;
265                        }
266                        if (isset($index)) {
267                                $type_ext = $t['type_ext'];
268                                $n = 1;
269                                $code_choix = $code.'_'.$n;
270                                while ($type_ext[$code_choix])
271                                        $code_choix = $code.'_'.(++$n);
272                                $type_ext[$code_choix] = _L("Nouveau choix");
273                                $structure[$index]['type_ext'] = $type_ext;
274                                $champ_visible = $t['code'];
275                                $ajout_choix = $code_choix;
276                        }
277                        $modif_structure = true;
278                }*/
279                if ($code_choix = $supp_choix) {
280                        foreach ($structure as $index => $t) {
281                                if (is_array($t['type_ext']) && isset($t['type_ext'][$supp_choix])) {
282                                        unset($t['type_ext'][$supp_choix]);
283                                        if (!$t['type_ext']) $t['type_ext'] = array();
284                                        $champ_visible = $t['code'];
285                                        $structure[$index] = $t;
286                                }
287                        }
288                        $modif_structure = true;
289                }
290                // Suppression d'un champ
291                if ($code = $supp_champ) {
292                        unset($index);
293                        foreach ($structure as $index => $t) {
294                                if ($code == $t['code']) break;
295                        }
296                        if (isset($index)&&($structure[$index]['code']==$code)){
297                                unset($structure[$index]);
298                                if (!$structure) $structure = array();
299                                $modif_structure = true;
300                        }
301                }
302
303                // Monter / descendre un champ
304                if (isset($monter) && $monter > 0) {
305
306                        $monter = intval($monter);
307                        $n = $monter;
308                        while (--$n) if ($structure[$n]) break;                 
309                        if ($t = $structure[$n]) {
310                                $structure[$n] = $structure[$monter];
311                                $structure[$monter] = $t;
312                                $champ_visible = $structure[$n]['code'];
313                        }
314                        $modif_structure = true;
315                }
316                if (isset($descendre)) {
317                        $descendre = intval($descendre);
318                        $max = max(array_keys($structure));
319                        $n = $descendre;
320                        while (++$n < $max) if ($structure[$n]) break;
321                        if ($t = $structure[$n]) {
322                                $structure[$n] = $structure[$descendre];
323                                $structure[$descendre] = $t;
324                                $champ_visible = $structure[$n]['code'];
325                        }
326                        $modif_structure = true;
327                }
328                if ($id_form && Forms_form_editable($id_form)) {
329                        if ($modif_structure) {
330                                ksort($structure);
331                                $query = "UPDATE spip_forms SET `structure`='".addslashes(serialize($structure))."' ".
332                                        "WHERE id_form=$id_form";
333                                spip_query($query);
334                        }
335                }
336        }
337       
338        return array($id_form,$champ_visible,$nouveau_champ);
339}
340
341function debut_block_route($id,$visible){
342        $display = $visible?'block':'none';
343        return "<script type='text/javascript'><!--
344                                        document.write('<div id=\"$id\" style=\"display: $display; margin-top: 1;\">');
345                                        //--></script>
346                                        <noscript>
347                                        <div id='bock_email_route_$code' style='display: block;'>
348                                        </noscript>";   
349}
350function fin_block_route(){
351        return  "<script type='text/javascript'><!--
352                                        document.write('<\/div>');
353                                        //--></script>
354                                        <noscript>
355                                                </div>
356                                        </noscript>";
357}
358
359function exec_forms_edit(){
360        global $spip_lang_right;
361        $id_form = intval(_request('id_form'));
362        $new = _request('new');
363        $supp_form = intval(_request('supp_form'));
364        $modif_champ = _request('modif_champ');
365        $ajout_champ = _request('ajout_champ');
366        $retour = _request('retour');
367        $titre = _request('titre');
368        $descriptif = _request('descriptif');
369        $email = _request('email');
370        $champconfirm = _request('champconfirm');
371        $texte = _request('texte');
372        $sondage = _request('sondage');
373        $nom_champ = _request('nom_champ');
374        $champ_obligatoire = _request('champ_obligatoire');
375        $monter = _request('monter');
376        $descendre = _request('descendre');
377        $supp_choix = _request('supp_choix');
378        $supp_champ = _request('supp_champ');
379        $supp_confirme = _request('supp_confirme');
380        $supp_rejet = _request('supp_rejet');
381
382       
383  Forms_verifier_base();
384
385        if ($retour)
386                $retour = urldecode($retour);
387  include_spip("inc/presentation");
388        include_spip("inc/config");
389
390        if ($id_form) {
391                $query = "SELECT COUNT(*) FROM spip_reponses WHERE id_form=$id_form AND statut='valide'";
392                $result = spip_query($query);
393                list($nb_reponses) = spip_fetch_array($result,SPIP_NUM);
394        }
395        else $nb_reponses = 0;
396
397        $clean_link = parametre_url(self(),'new','');
398        $form_link = generer_url_ecrire('forms_edit');
399        if ($new == 'oui' && !$titre)
400                $form_link = parametre_url($form_link,"new",$new);
401        if ($retour) 
402                $form_link = parametre_url($form_link,"retour",urlencode($retour));
403
404               
405        unset($champ_visible);
406        unset($nouveau_champ);
407        //
408        // Recupere les donnees
409        //
410        if ($new == 'oui' && !$titre) {
411                $titre = _T("forms:nouveau_formulaire");
412                $descriptif = "";
413                $sondage = "non";
414                $structure = array();
415                $email = array();
416                $champconfirm = "";
417                $texte = "";
418                $js_titre = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\"";
419        }
420        else {
421                //
422                // Modifications au structure du formulaire
423                //
424                list($id_form,$champ_visible,$nouveau_champ) = forms_update();
425               
426                $query = "SELECT * FROM spip_forms WHERE id_form=$id_form";
427                $result = spip_query($query);
428                if ($row = spip_fetch_array($result)) {
429                        $id_form = $row['id_form'];
430                        $titre = $row['titre'];
431                        $descriptif = $row['descriptif'];
432                        $sondage = $row['sondage'];
433                        $structure = unserialize($row['structure']);
434                        $email = unserialize($row['email']);
435                        $champconfirm = $row['champconfirm'];
436                        $texte = $row['texte'];
437                }
438                $js_titre = "";
439        }
440        $form_link = parametre_url($form_link,"id_form",$id_form);
441        $clean_link = parametre_url($clean_link,"id_form",$id_form);
442
443        //
444        // Affichage de la page
445        //
446
447        debut_page("&laquo; $titre &raquo;", "documents", "forms","");
448
449        debut_gauche();
450
451
452        echo "<br /><br />\n";
453       
454        if (Forms_form_administrable($id_form) && $nb_reponses) {
455                debut_boite_info();
456
457                $retour = urlencode(self());
458                icone_horizontale(_T("forms:suivi_reponses")."<br />".$nb_reponses." "._T("forms:reponses"),
459                        generer_url_ecrire('forms_reponses',"id_form=$id_form"), "forum-public-24.gif", "rien.gif");
460                icone_horizontale(_T("forms:telecharger_reponses"),
461                        generer_url_ecrire('forms_telecharger',"id_form=$id_form&retour=$retour"), "doc-24.gif", "rien.gif");
462
463                fin_boite_info();
464        }
465
466
467
468        debut_droite();
469
470        if ($supp_form && $supp_confirme==NULL && $supp_rejet==NULL) {
471                if ($nb_reponses){
472                        echo "<p><strong>"._T("forms:attention")."</strong> ";
473                        echo _T("forms:info_supprimer_formulaire_reponses")."</p>\n";
474                }
475                else{
476                        echo "<p>";
477                        echo _T("forms:info_supprimer_formulaire")."</p>\n";
478                }
479                $link = parametre_url($clean_link,'supp_form', $supp_form);
480                echo "<form method='POST' action='"
481                        . $link
482                        . "' style='border: 0px; margin: 0px;'>";
483                echo "<div style='text-align:$spip_lang_right'>";
484                echo "<input type='submit' name='supp_confirme' value=\""._T('item_oui')."\" class='fondo'>";
485                echo " &nbsp; ";
486                echo "<input type='submit' name='supp_rejet' value=\""._T('item_non')."\" class='fondo'>";
487                echo "</div>";
488                echo "</form><br />\n";
489        }
490
491
492        if ($id_form) {
493                debut_cadre_relief("../"._DIR_PLUGIN_FORMS."/img_pack/form-24.png");
494
495                gros_titre($titre);
496
497                if ($descriptif) {
498                        echo "<p /><div align='left' border: 1px dashed #aaaaaa;'>";
499                        echo "<strong class='verdana2'>"._T('info_descriptif')."</strong> ";
500                        echo propre($descriptif);
501                        echo "</div>\n";
502                }
503
504                if ($email) {
505                        echo "<p /><div align='left' border: 1px dashed #aaaaaa;'>";
506                        echo "<strong class='verdana2'>"._T('email_2')."</strong> ";
507                        echo $email['defaut'];
508                        echo "</div>\n";
509                }
510                if ($champconfirm){
511                        $champconfirm_known = false;
512                        echo "<div align='left' border: 1px dashed #aaaaaa;'>";
513                        echo "<strong class='verdana2'>"._T('forms:confirmer_reponse')."</strong> ";
514                        foreach ($structure as $index => $t) {
515                                if (($t['type'] == 'email') && ($champconfirm == $t['code'])) {
516                                        echo $t['nom'] . " ";
517                                        $champconfirm_known = true;
518                                }
519                        }
520                        echo "</div>\n";
521                        if (($champconfirm_known == true) && ($texte)) {
522                                echo "<div align='left' border: 1px dashed #aaaaaa;'>";
523                                echo "<strong class='verdana2'>"._T('info_texte')."</strong> ";
524                                echo nl2br(entites_html($texte));
525                                echo "</div>\n";
526                        }
527                }
528
529                if (count($structure)) {
530                        echo "<br />";
531
532                        echo "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
533                        echo bouton_block_invisible("preview_form");
534                        echo "<strong class='verdana3' style='text-transform: uppercase;'>"
535                                ._T("forms:apparence_formulaire")."</strong>";
536                        echo "</div>\n";
537
538                        echo debut_block_invisible("preview_form");
539                        echo _T("forms:info_apparence")."<p>\n";
540                        //echo "<div class='spip_forms'>";
541                        echo propre("<form$id_form>");
542                        //echo "</div>\n";
543                        echo fin_block();
544
545                }
546
547                afficher_articles(_T("forms:articles_utilisant"),
548                        array('FROM' => 'spip_articles AS articles, spip_forms_articles AS lien',
549                        'WHERE' => "lien.id_article=articles.id_article AND id_form=$id_form AND statut!='poubelle'",
550                        'ORDER BY' => "titre"));
551
552                fin_cadre_relief();
553        }
554
555
556        //
557        // Icones retour et suppression
558        //
559        echo "<div style='text-align:$spip_lang_right'>";
560        if ($retour) {
561                icone(_T('icone_retour'), $retour, "../"._DIR_PLUGIN_FORMS."/img_pack/form-24.png", "rien.gif",'right');
562        }
563        if ($id_form && Forms_form_administrable($id_form)) {
564                echo "<div style='float:$spip_lang_left'>";
565                $link = parametre_url($clean_link,'supp_form', $id_form);
566                if (!$retour) {
567                        $link=parametre_url($link,'retour', urlencode(generer_url_ecrire('form_tous')));
568                }
569                icone(_T("forms:supprimer_formulaire"), $link, "../"._DIR_PLUGIN_FORMS."/img_pack/form-24.png", "supprimer.gif");
570                echo "</div>";
571        }
572        echo "<div style='clear:both;'></div>";
573        echo "</div>";
574
575
576        //
577        // Edition des donnees du formulaire
578        //
579        if (Forms_form_editable($id_form)) {
580                echo "<p>";
581                debut_cadre_formulaire();
582
583                echo "<div class='verdana2'>";
584                echo "<form method='POST' action='"
585                        . $form_link
586                        . "' style='border: 0px; margin: 0px;'>";
587
588                $titre = entites_html($titre);
589                $descriptif = entites_html($descriptif);
590                $texte = entites_html($texte);
591
592                echo "<strong><label for='titre_form'>"._T("forms:titre_formulaire")."</label></strong> "._T('info_obligatoire_02');
593                echo "<br />";
594                echo "<input type='text' name='titre' id='titre_form' CLASS='formo' ".
595                        "value=\"".entites_html($titre)."\" size='40'$js_titre><br />\n";
596
597                echo "<strong><label for='desc_form'>"._T('info_descriptif')."</label></strong>";
598                echo "<br />";
599                echo "<textarea name='descriptif' id='desc_form' class='forml' rows='4' cols='40' wrap='soft'>";
600                echo entites_html($descriptif);
601                echo "</textarea><br />\n";
602
603
604               
605                // Routage facultatif des emails en fonction d'un champ select
606                $email_route_known = false;
607                $jshide = "";
608                $s = "";
609                $options = "";
610                if (is_array($structure)){
611                        foreach ($structure as $index => $t) {
612                                if ($t['type'] == 'select'){
613                                        $visible = false;
614                                        $code = $t['code'];
615                                        $options .= "<option value='$code'";
616                                        if ($email['route'] == $code){
617                                                $options .= " selected='selected'";
618                                                $email_route_known = $visible = true;
619                                        }
620                                        $options .= ">" . $t['nom'] . "</option>\n";
621                                        $s .= debut_block_route("bock_email_route_$code",$visible);
622                                        $jshide .=  "cacher_email_route('bock_email_route_$code');\n";
623                                       
624                                        $s .= "<table id ='email_route_$code'>\n";
625                                        $s .= "<tr><th>".$t['nom']."</th><th>";
626                                        $s .= "<strong><label for='email_route_$code'>"._T('email_2')."</label></strong>";
627                                        $s .= "</th></tr>\n";
628                                        $js = "";
629                                        $type_ext = $t['type_ext'];
630                                        foreach ($type_ext as $code_choix => $nom_choix) {
631                                                $s .= "<tr><td>$nom_choix</td><td>";
632                                                $s .= "<input type='text' name='email[$code_choix]' value=\"";
633                                                $s .= isset($email[$code_choix])?entites_html($email[$code_choix]):"";
634                                                $s .= "\" class='fondl verdana2' size='20'$js>";
635                                                $s .= "</td></tr>";
636                                        }
637                                        $s .="</table>";
638                                        $s .= fin_block_route("bock_email_route_$code",$visible);
639                                }
640                        }
641                        $jshide = "<script type='text/javascript'><!--
642                        function montrer_email_route(obj) {
643                                layer = findObj(obj);
644                                if (layer)
645                                        layer.style.display = 'block';
646                        }
647                        function cacher_email_route(obj) {
648                                layer = findObj(obj);
649                                if (layer)
650                                        layer.style.display = 'none';
651                        }
652                        function update_email_route_visibility(obj){
653                                $jshide
654                                cacher_email_route('bock_email_route_');
655                                montrer_email_route(obj);
656                        }
657                        //--></script>\n";
658                        echo $jshide;
659
660                        echo "<strong><label for='email_route_form'>"._T('forms:choisir_email')."</label></strong> ";
661                        echo "<br />";
662                        echo "<select name='email[route]' id='email_route_form' class='forml'";
663                        echo "onchange='update_email_route_visibility(\"bock_email_route_\"+options[selectedIndex].value)' ";
664                        echo ">\n";
665                        echo "<option value=''>"._T('forms:email_independant')."</option>\n";
666                        echo $options;
667                        echo "</select><br />\n";
668                }
669               
670                echo debut_block_route("bock_email_route_",$email_route_known==false);
671                echo "<strong><label for='email_form'>"._T('email_2')."</label></strong> ";
672                echo "<br />";
673                echo "<input type='text' name=\"email[defaut]\" id='email_form' class='forml' ".
674                        "value=\"".entites_html($email['defaut'])."\" size='40'$js_titre>\n";
675                echo fin_block_route();
676                echo $s;
677                echo "<br/>";
678               
679                //-----
680
681                echo "<strong><label for='confirm_form'>"._T('forms:confirmer_reponse')."</label></strong> ";
682                echo "<br />";
683                echo "<select name='champconfirm' id='confirm_form' class='forml'>\n";
684                echo "<option value=''";
685                if ($champconfirm=='') echo " selected='selected'";
686                echo ">"._T('forms:pas_mail_confirmation')."</option>\n";
687                $champconfirm_known = false;
688                foreach ($structure as $index => $t) {
689                        if ($t['type'] == 'email'){
690                                echo "<option value='" . $t['code'] . "'";
691                                if ($champconfirm == $t['code']){
692                                        echo " selected='selected'";
693                                        $champconfirm_known = true;
694                                }
695                                echo ">" . $t['nom'] . "</option>\n";
696                        }
697                }
698                echo "</select><br />\n";
699                if ($champconfirm_known == true){
700                        echo "<strong><label for='texte_form'>"._T('info_texte')."</label></strong>";
701                        echo "<br />";
702                        echo "<textarea name='texte' id='texte_form' class='formo' rows='4' cols='40' wrap='soft'>";
703                        echo entites_html($texte);
704                        echo "</textarea><br />\n";
705                }
706                else {
707                        echo "<input type='hidden' name='texte' value=\"" . entites_html($texte);
708                        echo "\" />\n";
709                }
710
711
712                debut_cadre_enfonce("statistiques-24.gif");
713                echo "<strong>"._T("forms:sondage")."</strong> : ";
714                echo _T("forms:info_sondage");
715                echo "<br /><br />";
716                afficher_choix('sondage', $sondage, array(
717                        'non' => _T("forms:sondage_non"),
718                        'public' => _T("forms:sondage_pub"),
719                        'prot' => _T("forms:sondage_prot")
720                ));
721                fin_cadre_enfonce();
722
723                echo "<div align='right'>";
724                echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo'></div>\n";
725
726                echo "</form>";
727
728                //
729                // Creer / modifier des champs
730                //
731                if ($id_form) {
732                        echo "<a name='champs'></a>";
733                        echo "<p><hr><p>\n";
734                        echo "<div class='verdana3'>";
735                        echo "<strong>"._T("forms:champs_formuaire")."</strong><br />\n";
736                        echo _T("forms:info_champs_formulaire");
737                        echo "</div>\n";
738
739                        if (count($structure)) {
740                                $keys = array_keys($structure);
741                                $index_min = min($keys);
742                                $index_max = max($keys);
743                        }
744
745                        foreach ($structure as $index => $t) {
746                                $code = $t['code'];
747                                $visible = ($code == $champ_visible);
748                                $nouveau = ($code == $nouveau_champ);
749                                $obligatoire = $t['obligatoire'];
750                                $aff_min = $index > $index_min;
751                                $aff_max = $index < $index_max;
752                                $type = $t['type'];
753
754                                if ($nouveau) echo "<a name='nouveau_champ'></a>";
755                                else if ($visible) echo "<a name='champ_visible'></a>";
756                                echo "<p>\n";
757                                if (!in_array($type,array('separateur','textestatique')))
758                                        debut_cadre_relief();
759                                else
760                                        debut_cadre_enfonce();
761                               
762                                echo "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
763                                if ($aff_min || $aff_max) {
764                                        echo "<div class='verdana1' style='float: right; font-weight: bold;'>";
765                                        if ($aff_min) {
766                                                $link = parametre_url($form_link,'monter', $index);
767                                                echo "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0' alt='"._T("forms:champ_monter")."'></a>";
768                                        }
769                                        if ($aff_min && $aff_max) {
770                                                echo " | ";
771                                        }
772                                        if ($aff_max) {
773                                                $link = parametre_url($form_link,'descendre', $index);
774                                                echo "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0' alt='"._T("forms:champ_descendre")."'></a>";
775                                        }
776                                        echo "</div>\n";
777                                }
778
779                                echo $visible ? bouton_block_visible("champ_$code") : bouton_block_invisible("champ_$code");
780                                echo "<strong>".typo($t['nom'])."</strong>";
781                                echo "<br /></div>";
782                                echo "(".Forms_nom_type_champ($t['type']).")\n";
783                                echo $visible ? debut_block_visible("champ_$code") : debut_block_invisible("champ_$code");
784
785                                // Modifier un champ
786                                echo "<form method='POST' action='"
787                                        . $form_link . "#champ_visible"
788                                        . "' style='border: 0px; margin: 0px;'>";
789                                echo "<input type='hidden' name='modif_champ' value='$code' />";
790
791                                echo "<div class='verdana2'>";
792                                echo "<p>";
793                                if ($nouveau) {
794                                        echo "<script type='text/javascript'><!-- \nvar antifocus_champ = false; // --></script>\n";
795                                        $js = " onfocus=\"if(!antifocus_champ){this.value='';antifocus_champ=true;}\"";
796                                }
797                                else $js = "";
798                                if ($type=='separateur'){
799                                        echo "<label for='nom_$code'>"._T("forms:champ_nom_bloc")."</label> :";
800                                        echo " &nbsp;<input type='text' name='nom_champ' id='nom_$code' value=\"".
801                                                entites_html($t['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
802                                }
803                                else if ($type=='textestatique'){
804                                        echo "<label for='nom_$code'>"._T("forms:champ_nom_texte")."</label> :<br/>";
805                                        echo " &nbsp;<textarea name='nom_champ' id='nom_$code'  class='verdana2' style='width:100%;height:5em;' $js>".
806                                                entites_html($t['nom'])."</textarea><br />\n";
807                                }
808                                else{
809                                        echo "<label for='nom_$code'>"._T("forms:champ_nom")."</label> :";
810                                        echo " &nbsp;<input type='text' name='nom_champ' id='nom_$code' value=\"".
811                                                entites_html($t['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
812                                        bloc_edition_champ($t, $form_link);
813                                }
814
815                                echo "<div align='right'>";
816                                echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo verdana2'></div>\n";
817                                echo "</div>\n";
818                                echo "</form>";
819                                // Supprimer un champ
820                                $link = parametre_url($form_link,'supp_champ', $code);
821                                echo "<div style='float: left;'>";
822                                icone_horizontale(_T("forms:supprimer_champ"), $link."#champs","../"._DIR_PLUGIN_FORMS. "/img_pack/form-24.png", "supprimer.gif");
823                                echo "</div>\n";
824
825                                echo fin_block();
826                                if (!in_array($t['type'],array('separateur','textestatique')))
827                                        fin_cadre_relief();
828                                else
829                                        fin_cadre_enfonce();
830                        }
831
832                        // Ajouter un champ
833                        echo "<p>";
834                        debut_cadre_enfonce();
835                        echo "<form method='POST' action='"
836                                . $form_link. "#nouveau_champ"
837                                . "' style='border: 0px; margin: 0px;'>";
838                        echo "<strong>"._T("forms:ajouter_champ")."</strong><br />\n";
839                        echo _T("forms:ajouter_champ_type");
840                        echo " \n";
841                        $types = array('ligne', 'texte', 'email', 'url', 'select', 'multiple', 'fichier', 'mot','separateur','textestatique');
842                        echo "<select name='ajout_champ' value='' class='fondo'>\n";
843                        foreach ($types as $type) {
844                                echo "<option value='$type'>".Forms_nom_type_champ($type)."</option>\n";
845                        }
846                        echo "</select>\n";
847                        echo " &nbsp; <input type='submit' name='valider' id='ajout_champ' VALUE='"._T('bouton_ajouter')."' class='fondo'>";
848                        echo "</form>\n";
849                        fin_cadre_enfonce();
850                }
851
852                echo "</div>\n";
853
854                fin_cadre_formulaire();
855        }
856
857
858        fin_page();
859}
860?>
Note: See TracBrowser for help on using the repository browser.