source: spip-zone/_plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_edit.php @ 7518

Last change on this file since 7518 was 7518, checked in by cedric@…, 13 years ago

Pour faire des hCard, il faut que la donnee puisse etre wrapee (champ wrap au niveau global)
et aussi les fieldset (sous elements)
Le wrap peut etre de forme simple :
<span class='truc'></span>
ou plus complexe :
<a href='$1' class='truc'>$1</a>

Un formulaire type qui implemente hCard, et le modele donnee qui l'affiche correctement
Ca fait un modele assez imbitable, mais ca marche

File size: 23.3 KB
Line 
1<?php
2/*
3 * forms
4 * Gestion de formulaires editables dynamiques
5 *
6 * Auteurs :
7 * Antoine Pitrou
8 * Cedric Morin
9 * Renato
10 * � 2005,2006 - Distribue sous licence GNU/GPL
11 *
12 */
13// compatibilite trans 1.9.1-1.9.2
14// Cadre formulaires
15// http://doc.spip.org/@debut_cadre_formulaire
16function Forms_debut_cadre_formulaire($style='', $return=false){
17        $x = "\n<div class='cadre-formulaire'" .
18          (!$style ? "" : " style='$style'") .
19           ">";
20        if ($return) return  $x; else echo $x;
21}
22
23// http://doc.spip.org/@fin_cadre_formulaire
24function Forms_fin_cadre_formulaire($return=false){
25        if ($return) return  "</div>\n"; else echo "</div>\n";
26}
27
28
29function Forms_nouveau_champ($id_form,$type){
30        $res = spip_query("SELECT champ FROM spip_forms_champs WHERE id_form="._q($id_form)." AND type="._q($type));
31        $n = 1;
32        $champ = $type.'_'.strval($n);
33        while ($row = spip_fetch_array($res)){
34                $lenumero = split('_', $row['champ'] );
35                $lenumero = intval(end($lenumero));
36                if ($lenumero>= $n) $n=$lenumero+1;
37        }
38        $champ = $type.'_'.strval($n);
39        return $champ;
40}
41function Forms_insere_nouveau_champ($id_form,$type,$titre,$champ=""){
42        if (!strlen($champ))
43                $champ = Forms_nouveau_champ($id_form,$type);
44        $rang = 0;
45        $res = spip_query("SELECT max(rang) AS rangmax FROM spip_forms_champs WHERE id_form="._q($id_form));
46        if ($row = spip_fetch_array($res))
47                $rang = $row['rangmax'];
48        $rang++;
49        include_spip('base/abstract_sql');
50        spip_abstract_insert(
51                'spip_forms_champs',
52                '(id_form,champ,rang,titre,type,obligatoire,extra_info)',
53                '('._q($id_form).','._q($champ).','._q($rang).','._q($titre).','._q($type).",'non','')");
54        return $champ;
55}
56function Forms_nouveau_choix($id_form,$champ){
57        $n = 1;
58        $res = spip_query("SELECT choix FROM spip_forms_champs_choix WHERE id_form="._q($id_form)." AND champ="._q($champ));
59        while ($row = spip_fetch_array($res)){
60                $lenumero = split('_', $row['choix']);
61                $lenumero = intval(end($lenumero));
62                if ($lenumero>= $n) $n=$lenumero+1;
63        }
64        $choix = $champ.'_'.$n;
65        return $choix;
66}
67function Forms_insere_nouveau_choix($id_form,$champ,$titre){
68        $choix = Forms_nouveau_choix($id_form,$champ);
69        $rang = 0;
70        $res = spip_query("SELECT max(rang) AS rangmax FROM spip_forms_champs_choix WHERE id_form="._q($id_form)." AND champ="._q($champ));
71        if ($row = spip_fetch_array($res))
72                $rang = $row['rangmax'];
73        $rang++;
74        include_spip('base/abstract_sql');
75        spip_abstract_insert("spip_forms_champs_choix","(id_form,champ,choix,titre,rang)","("._q($id_form).","._q($champ).","._q($choix).","._q($titre).","._q($rang).")");
76        return $choix;
77}
78
79function Forms_bloc_routage_mail($id_form,$email){
80                $out = "";
81                // Routage facultatif des emails en fonction d'un champ select
82                $defaut = true;
83                $s = "";
84                $options = "";
85                $res2 = spip_query("SELECT * FROM spip_forms_champs WHERE type='select' AND id_form="._q($id_form)." ORDER BY rang");
86                while ($row2 = spip_fetch_array($res2)) {
87                        $display = 'none';
88                        $code = $row2['champ'];
89                        $options .= "<option value='$code'";
90                        if ($email['route'] == $code){
91                                $options .= " selected='selected'";$display='block';$defaut=false;
92                        }
93                        $options .= ">" . $row2['titre'] . "</option>\n";
94                        $s .= "<div id='block_email_route_$code' class='block_email_route' style='display:$display'>";
95                       
96                        $s .= "<table id ='email_route_$code'>\n";
97                        $s .= "<tr><th>".$row2['titre']."</th><th>";
98                        $s .= "<strong><label for='email_route_$code'>"._T('email_2')."</label></strong>";
99                        $s .= "</th></tr>\n";
100
101                        $res3 = spip_query("SELECT * FROM spip_forms_champs_choix WHERE id_form="._q($id_form)." AND champ="._q($row2['champ'])." ORDER BY rang");
102                        while($row3 = spip_fetch_array($res3)){
103                                $s .= "<tr><td>".$row3['titre']."</td><td>";
104                                $s .= "<input type='text' name='email[".$row3['choix']."]' value=\"";
105                                $s .= isset($email[$row3['choix']])?entites_html($email[$row3['choix']]):"";
106                                $s .= "\" class='fondl verdana2' size='20' />";
107                                $s .= "</td></tr>";
108                        }
109                        $s .="</table>";
110                        $s .= "</div>";
111                }
112                if (strlen($s)){
113                        $out .= "<strong><label for='email_route_form'>"._T('forms:choisir_email')."</label></strong> ";
114                        $out .= "<br />";
115                        $out .= "<select name='email[route]' id='email_route_form' class='forml'";
116                        $out .= "onchange=\"$('.block_email_route').hide();$('#block_email_route_'+options[selectedIndex].value).show();\" ";
117                        $out .= ">\n";
118                        $out .= "<option value=''>"._T('forms:email_independant')."</option>\n";
119                        $out .= $options;
120                        $out .= "</select><br />\n";
121                }
122                $display = $defaut?'block':'none';
123                $out .= "<div id='block_email_route_' class='block_email_route' style='display:$display'>";
124                $out .= "<strong><label for='email_form'>"._T('email_2')."</label></strong> ";
125                $out .= "<br />";
126                $out .= "<input type='text' name=\"email[defaut]\" id='email_form' class='forml' ".
127                        "value=\"".entites_html($email['defaut'])."\" size='40' />\n";
128                $out .= "</div>";
129                $out .= $s;
130                $out .= "<br/>";
131                return $out;
132}
133
134function Forms_bloc_edition_champ($row, $action_link, $redirect, $idbloc) {
135        global $couleur_claire;
136
137        $id_form = $row['id_form'];
138        $champ = $row['champ'];
139        $type = $row['type'];
140        $titre = $row['titre'];
141        $obligatoire = $row['obligatoire'];
142        $extra_info = $row['extra_info'];
143        $specifiant = $row['specifiant'];
144        $public = $row['public'];
145        $aide = $row['aide'];
146        $html_wrap = $row['html_wrap'];
147       
148        $out = "";
149
150        if ($type != 'separateur'){
151                $checked = ($obligatoire == 'oui') ? " checked='checked'" : "";
152                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_obligatoire' value='oui' id='obli_$champ'$checked> ";
153                $out .= "<label for='obli_$champ'>"._T("forms:edit_champ_obligatoire")."</label>";
154                $out .= "<br />\n";
155               
156                $checked = ($specifiant == 'oui') ? " checked='checked'" : "";
157                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_specifiant' value='oui' id='spec_$champ'$checked> ";
158                $out .= "<label for='spec_$champ'>"._T("forms:champ_specifiant")."</label>";
159                $out .= "<br />\n";
160               
161                $checked = ($public == 'oui') ? " checked='checked'" : "";
162                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_public' value='oui' id='public_$champ'$checked> ";
163                $out .= "<label for='public_$champ'>"._T("forms:champ_public")."</label>";
164                $out .= "<br />\n";
165        }
166        if ($type == 'separateur' || $type=='textestatique'){
167                $out = "<input type='hidden' name='champ_public' value='oui' />";
168        }
169
170        if ($type == 'url') {
171                $checked = ($extra_info == 'oui') ? " checked='checked'" : "";
172                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_verif' value='oui' id='verif_$champ'$checked> ";
173                $out .= "<label for='verif_$champ'>"._T("forms:verif_web")."</label>";
174                $out .= "<br />\n";
175        }
176        if ($type == 'select') {
177                $out .= "<label for='format_liste_$champ'>"._T("forms:format_liste_ou_radio")."</label> :";
178                $out .= " &nbsp;<select name='format_liste' id='format_liste_$champ' class='fondo verdana2'>\n";
179                $out .= "<option value='liste'".($row['extra_info']=='liste'?"selected='selected'":"").">"._T("forms:format_liste")."</option>\n";
180                $out .= "<option value='radio'".($row['extra_info']=='radio'?"selected='selected'":"").">"._T("forms:format_radio")."</option>\n";
181                $out .= "</select>";
182                $out .= "<br />\n";
183        }
184        if ($type == 'select' || $type == 'multiple') {
185                $ajout_choix = _request('ajout_choix');
186
187                $out .= "<div style='margin: 5px; padding: 5px; border: 1px dashed $couleur_claire;'>";
188                $out .= _T("forms:liste_choix")."&nbsp;:<br />\n";
189                $out .= "<div class='sortableChoix' id='ordre_choix_$champ' >";
190                $res2 = spip_query("SELECT * FROM spip_forms_champs_choix WHERE id_form="._q($id_form)." AND champ="._q($champ)." ORDER BY rang");
191                while ($row2 = spip_fetch_array($res2)){
192                        $choix = $row2['choix'];
193                        $focus='';
194                        if ($ajout_choix == $choix) $focus='antifocus';
195                        $out .= "<div class='sortableChoixItem' id='$champ-$choix'>";
196                        $out .= "<img src='"._DIR_PLUGIN_FORMS."img_pack/choix-handle-16.png' class ='sortableChoixHandle' />";
197                        $out .= "<input type='text' id='nom_$choix' name='$choix' value=\"".entites_html($row2['titre'])."\" ".
198                                "class='fondl verdana2 $focus' size='20' />";
199
200                        $supp_link = parametre_url($action_link,'supp_choix', $choix);
201                        $out .= " &nbsp; <span class='verdana1'>[<a href='$supp_link#$idbloc' class='ajaxAction' rel ='$redirect' >".
202                                _T("forms:supprimer_choix")."</a>]</span>";
203                        $out .= "</div>\n";
204                }
205                $out .= "</div><input type='hidden' name='ordre' value='' />";
206                $ajout_choix = parametre_url($action_link,'ajout_choix', '1');
207                $out .= "<br /><input type='submit' name='ajout_choix' value=\""._T("forms:ajouter_choix")."\" class='fondo verdana2'>";
208                        _T("forms:ajouter_choix")."</a>]</div>";
209                $out .= "</div>";
210               
211                $switch_link = parametre_url($action_link,'switch_select_multi', '1');
212                $switch_link = parametre_url($switch_link,'modif_champ', $champ);
213                $out .= "<br /><span class='verdana1'>[<a href='$switch_link#champs' class='ajaxAction' rel ='$redirect' >".
214                        (($type=='select')?_T("forms:changer_choix_multiple"):_T("forms:changer_choix_unique")) . 
215                        "</a>]</span>";
216
217                $out .= "<br />\n";
218        }
219        if ($type == 'mot') {
220                $out .= "<label for='groupe_$champ'>"._T("forms:champ_nom_groupe")."</label> :";
221                $out .= " &nbsp;<select name='groupe_champ' value='0' id='groupe_$champ' class='fondo verdana2'>\n";
222                $res2 = spip_query("SELECT * FROM spip_groupes_mots ORDER BY titre");
223                while ($row2 = spip_fetch_array($res2)) {
224                        $id_groupe = $row2['id_groupe'];
225                        $titre_groupe = supprimer_tags(typo($row2['titre']));
226                        $selected = ($id_groupe == $row['extra_info']) ? " selected='selected'": "";
227                        $out .= "<option value='$id_groupe'$selected>$titre_groupe</option>\n";
228                }
229                $out .= "</select>";
230                $out .= "<br />\n";
231        }
232        if ($type == 'fichier') {
233                $taille = intval($row['extra_info']);
234                if (!$taille) $taille = '';
235                $out .= "<label for='taille_$champ'>"._T("forms:taille_max")."</label> : ";
236                $out .= "<input type='text' name='taille_champ' value='$taille' id='taille_$champ' class='fondo verdana2'>\n";
237                $out .= "<br />\n";
238        }
239
240        return $out;
241}
242
243function Forms_zone_edition_champs($id_form, $champ_visible, $nouveau_champ, $redirect,$ajax=false){
244        global $spip_lang_right,$couleur_claire,$spip_lang_left;
245        $out = "";
246        if (!$id_form) return $out;
247        $out .= "<p>";
248        $out .= Forms_debut_cadre_formulaire('',true);
249        $out .= "<div class='verdana3'>";
250        $out .= "<strong>"._T("forms:champs_formulaire")."</strong><br />\n";
251        $out .= _T("forms:info_champs_formulaire");
252        $out .= "</div>\n";
253        $out .= "<div id='forms_lang'></div>";
254        $out .= "<div id='sortableChamps'>";
255
256        if ($row = spip_fetch_array(spip_query("SELECT MAX(rang) AS rangmax, MIN(rang) AS rangmin FROM spip_forms_champs WHERE id_form="._q($id_form)))){
257                $index_min = $row['rangmin'];
258                $index_max = $row['rangmax'];
259        }
260
261        $res = spip_query("SELECT * FROM spip_forms_champs WHERE id_form="._q($id_form).($ajax?" AND champ="._q($ajax):"")." ORDER BY rang");
262        while ($row = spip_fetch_array($res)) {
263                $champ = $row['champ'];
264                $visible = ($champ == $champ_visible)||($champ == $nouveau_champ);
265                $nouveau = ($champ == $nouveau_champ);
266                $obligatoire = $row['obligatoire'];
267                $rang = $row['rang'];
268                $aff_min = $rang > $index_min;
269                $aff_max = $rang < $index_max;
270                $type = $row['type'];
271                $id_bloc = "champs-$id_form-$champ";
272
273                $redirect = ancre_url(parametre_url($redirect,'champ_visible',$champ),'champ_visible');
274                $action_link = generer_action_auteur("forms_edit","$id_form",urlencode($redirect));
275                $action_link_noredir = parametre_url($action_link,'redirect','');
276
277                $out .= "<div id='order_$id_bloc' class='sortableChampsItem'>";
278                if ($nouveau) $out .= "<a name='nouveau_champ'></a>";
279                else if ($visible) $out .= "<a name='champ_visible'></a>";
280                if (!in_array($type,array('separateur','textestatique')))
281                        $out .= debut_cadre_relief("", true);
282                else
283                        $out .= debut_cadre_enfonce("", true);
284               
285                $out .= "<img src='"._DIR_PLUGIN_FORMS."img_pack/choix-handle-24.png' class ='sortableChampsHandle' style='float:$spip_lang_left;position:relative;'/>";
286                $out .= "<div class='verdana1' style='float: $spip_lang_right; font-weight: bold;position:relative;display:inline;'>";
287                $out .= "<span class='boutons_ordonne'>";
288                if ($aff_min) {
289                        $link = generer_action_auteur('forms_champs_deplace',"$id_form-$champ-monter",urlencode($redirect));
290                        $link = parametre_url($link,"time",time()); // pour avoir une url differente de l'actuelle
291                        $out .= "<a href='$link#champs' class='ajaxAction' rel='$redirect'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0' alt='"._T("forms:champ_monter")."'></a>";
292                        if ($aff_max)
293                                $out .= " | ";
294                }
295                if ($aff_max) {
296                        $link = generer_action_auteur('forms_champs_deplace',"$id_form-$champ-descendre",urlencode($redirect));
297                        $link = parametre_url($link,"time",time()); // pour avoir une url differente de l'actuelle
298                        $out .= "<a href='$link#champs' class='ajaxAction' rel='$redirect'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0' alt='"._T("forms:champ_descendre")."'></a>";
299                }
300                $out .= "</span>";
301                // Supprimer un champ
302                $link = parametre_url($action_link,'supp_champ', $champ);
303                $out .= "<a href='$link#champs' class='ajaxAction' rel='$redirect'><img src='"._DIR_IMG_PACK."supprimer.gif' style='border:0' alt='"._T("forms:supprimer_champ")."'></a>";
304                $out .= "</div>\n";
305
306                // Modifier un champ
307                $formulaire = "";
308                $formulaire .= "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
309                $formulaire .= $visible ? bouton_block_visible("champ_$champ") : bouton_block_invisible("champ_$champ");
310                $formulaire .= "<strong id='titre_nom_$champ'>".typo($row['titre'])."</strong>";
311                $formulaire .= "<br /></div>";
312                $formulaire .= "(".typo(Forms_nom_type_champ($row['type'])).")\n";
313                $formulaire .= $visible ? debut_block_visible("champ_$champ") : debut_block_invisible("champ_$champ");
314
315                $formulaire .= "<div id='forms_lang_nom_$champ'></div>";
316               
317                $formulaire .= "<form class='ajaxAction' method='POST' action='$action_link_noredir'" .
318                        " style='border: 0px; margin: 0px;'>" .
319                        form_hidden($action_link_noredir) .
320                        "<input type='hidden' name='redirect' value='$redirect' />" . // form_hidden ne desencode par redirect ...
321                        "<input type='hidden' name='idtarget' value='$id_bloc' />" .
322                        "<input type='hidden' name='modif_champ' value='$champ' />";
323
324                $formulaire .= "<div class='verdana2'>";
325                $focus="";
326                if ($nouveau) $focus='antifocus';
327               
328                if ($type=='separateur'){
329                        $formulaire .= "<label for='nom_$champ'>"._T("forms:champ_nom_bloc")."</label>&nbsp;:";
330                        $formulaire .= " &nbsp;<input type='text' name='nom_champ' id='nom_$champ' value=\"".
331                                entites_html($row['titre'])."\" class='fondo verdana2 $focus' size='30' /><br />\n";
332                        $formulaire .= Forms_bloc_edition_champ($row, $action_link, $redirect, $id_bloc);
333                }
334                else if ($type=='textestatique'){
335                        $formulaire .= "<label for='nom_$champ'>"._T("forms:champ_nom_texte")."</label>&nbsp;:<br/>";
336                        $formulaire .= " &nbsp;<textarea name='nom_champ' id='nom_$champ'  class='verdana2 $focus' style='width:100%;height:5em;' />".
337                                entites_html($row['titre'])."</textarea><br />\n";
338                        $formulaire .= Forms_bloc_edition_champ($row, $action_link, $redirect, $id_bloc);
339                }
340                else{
341                        $formulaire .= "<label for='nom_$champ'>"._T("forms:champ_nom")."</label> :";
342                        $formulaire .= " &nbsp;<input type='text' name='nom_champ' id='nom_$champ' value=\"".
343                                entites_html($row['titre'])."\" class='fondo verdana2 $focus' size='30' /><br />\n";
344                        $formulaire .= Forms_bloc_edition_champ($row, $action_link, $redirect, $id_bloc);
345
346                        $formulaire .= "<label for='aide_$champ'>"._T("forms:aide_contextuelle")."</label> :";
347                        $formulaire .= " &nbsp;<textarea name='aide_champ' id='aide_$champ'  class='verdana2' style='width:90%;height:3em;' >".
348                                entites_html($row['aide'])."</textarea><br />\n";
349                               
350                }
351                $formulaire .= "<label for='wrap_$champ'>"._T("forms:html_wrapper")."</label> :";
352                $formulaire .= " &nbsp;<textarea name='wrap_champ' id='wrap_$champ'  class='verdana2' style='width:90%;height:3em;' >".
353                entites_html($row['html_wrap'])."</textarea><br />\n";
354
355                $formulaire .= "<div style='text-align:$spip_lang_right'>";
356                $formulaire .= "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo verdana2'>\n";
357                $formulaire .= "</div>\n";
358
359                $args_redir=parametre_url($redirect,'exec','','&');
360                $args_redir=explode("#",$args_redir);
361                $args_redir=explode("?",$args_redir[0]);
362                $args_redir="&".$args_redir[1];
363
364                $formulaire .= "</div>";
365                $formulaire .= "</form>";
366                $formulaire .= fin_block();
367
368                if ($ajax && ($champ == $ajax))
369                        return $formulaire;
370                $out .= "<div id='$id_bloc' class='forms_champs'>$formulaire</div>";
371                if (!in_array($type,array('separateur','textestatique')))
372                        $out .= fin_cadre_relief(true);
373                else
374                        $out .= fin_cadre_enfonce(true);
375                $out .= '</div>';
376        }
377        if ($ajax)
378                return "Champ $ajax introuvable"; // erreur si l'on est encore ici
379        $out .= "</div>";
380        // Reordonner les champs ------------------------------------------------------------
381        $action_link = generer_action_auteur("forms_edit","$id_form",urlencode($redirect));
382        $action_link_noredir = parametre_url($action_link,'redirect','');
383        $out .= "<form class='ajaxAction sortableChamps' method='POST' action='$action_link_noredir' style='display:none;'>" .
384                form_hidden($action_link_noredir) .
385                "<input type='hidden' name='redirect' value='$redirect' />" . // form_hidden ne desencode par redirect ...
386                "<input type='hidden' name='idtarget' value='dummy' />". // on target un div vide
387                "<input type='hidden' name='ordonne_champs' value='$id_form' />";
388        $out .= "<input type='text' name='ordre' value='' />";
389        $out .= " &nbsp; <input type='submit' name='valider' value='"._T('bouton_valider')."' class='fondo'>";
390        $out .= "<div id='dummy'></div>";
391        $out .= "</form>\n";
392
393        // Ajouter un champ ------------------------------------------------------------------
394        $redirect = ancre_url(parametre_url($redirect,'champ_visible',''),'');
395        $action_link = generer_action_auteur("forms_edit","$id_form",urlencode($redirect));
396        $action_link_noredir = parametre_url($action_link,'redirect','');
397        $out .= "<p>";
398        $out .= debut_cadre_enfonce("", true);
399        $out .= "<form class='ajaxAction' method='POST' action='$action_link_noredir' style='border: 0px; margin: 0px;'>" .
400                form_hidden($action_link_noredir) .
401                "<input type='hidden' name='redirect' value='$redirect' />" . // form_hidden ne desencode par redirect ...
402                "<input type='hidden' name='idtarget' value='champs' />"; // on target toute la boite, pas juste le div parent
403        $out .= "<strong>"._T("forms:ajouter_champ")."</strong><br />\n";
404        $out .= _T("forms:ajouter_champ_type");
405        $out .= " \n";
406       
407        $types = Forms_liste_types_champs();
408        $out .= "<select name='ajout_champ' value='' class='fondo'>\n";
409        foreach ($types as $type) {
410                $out .= "<option value='$type'>".typo(Forms_nom_type_champ($type))."</option>\n";
411        }
412        $out .= "</select>\n";
413        $out .= " &nbsp; <input type='submit' name='valider' id='ajout_champ' value='"._T('bouton_ajouter')."' class='fondo'>";
414        $out .= "</form>\n";
415        $out .= fin_cadre_enfonce(true);
416        $out .= "</p>";
417        $out .= Forms_fin_cadre_formulaire(true);
418        $out .= "</p>";
419       
420        return $out;
421}
422
423
424//
425// Edition des donnees du formulaire
426//
427function boite_proprietes($id_form, $row, $focus, $action_link, $redirect) {
428        $out = "";
429        $out .= "<p>";
430        $out .= Forms_debut_cadre_formulaire('',true);
431
432        $action_link_noredir = parametre_url($action_link,'redirect','');
433        $out .= "<div class='verdana2'>";
434        //$out .= "<form method='POST' action='$action_link' style='border: 0px; margin: 0px;'>";
435        //$out .= form_hidden($action_link);
436        $out .= "<form class='ajaxAction' method='POST' action='$action_link_noredir'" .
437                " style='border: 0px; margin: 0px;'>" .
438                form_hidden($action_link_noredir) .
439                "<input type='hidden' name='redirect' value='$redirect' />" . // form_hidden ne desencode par redirect ...
440                "<input type='hidden' name='idtarget' value='proprietes' />" ;
441
442        $titre = entites_html($row['titre']);
443        $descriptif = entites_html($row['descriptif']);
444        $texte = entites_html($row['texte']);
445        $email = unserialize($row['email']);
446
447        $out .= "<strong><label for='titre_form'>"._T("forms:titre_formulaire")."</label></strong> "._T('info_obligatoire_02');
448        $out .= "<br />";
449        $out .= "<input type='text' name='titre' id='titre_form' class='formo $focus' ".
450                "value=\"".$titre."\" size='40' /><br />\n";
451
452        $out .= "<strong><label for='desc_form'>"._T('info_descriptif')."</label></strong>";
453        $out .= "<br />";
454        $out .= "<textarea name='descriptif' id='desc_form' class='forml' rows='4' cols='40' wrap='soft'>";
455        $out .= $descriptif;
456        $out .= "</textarea><br />\n";
457
458        $out .= Forms_bloc_routage_mail($id_form,$email);
459
460        $out .= "<strong><label for='confirm_form'>"._T('forms:confirmer_reponse')."</label></strong> ";
461        $out .= "<br />";
462        $out .= "<select name='champconfirm' id='confirm_form' class='forml'";
463        $out .= "onchange=\"if (options[selectedIndex].value=='') $('#texte_confirm').hide(); else $('#texte_confirm').show();\" ";
464        $out .= ">\n";
465        $out .= "<option value=''>"._T('forms:pas_mail_confirmation')."</option>\n";
466        $champconfirm_known = false;
467        $res2 = spip_query("SELECT * FROM spip_forms_champs WHERE type='email' AND id_form="._q($id_form));
468        while ($row2 = spip_fetch_array($res2)) {
469                $out .= "<option value='" . $row2['champ'] . "'";
470                if ($row['champconfirm'] == $row2['champ']){
471                        $out .= " selected='selected'";
472                        $champconfirm_known = true;
473                }
474                $out .= ">" . $row2['titre'] . "</option>\n";
475        }
476        $out .= "</select><br />\n";
477        $display = $champconfirm_known?"block":"none";
478        $out .= "<div id='texte_confirm' style='display:$display'>";
479        $out .= "<strong><label for='texte_form'>"._T('info_texte')."</label></strong>";
480        $out .= "<br />";
481        $out .= "<textarea name='texte' id='texte_form' class='formo' rows='4' cols='40' wrap='soft'>";
482        $out .= $texte;
483        $out .= "</textarea><br />\n";
484        $out .= "</div>";
485
486        if (in_array($row['type_form'],array('','sondage'))){
487                $out .= debut_cadre_enfonce("../"._DIR_PLUGIN_FORMS."img_pack/sondage-24.png",true);
488                $out .= "<strong>"._T("forms:type_form")."</strong> : ";
489                $out .= _T("forms:info_sondage");
490                $out .= "<br /><br />";
491                $out .= bouton_radio('type_form', '', _T("forms:sondage_non"), $row['type_form'] == '').'<br />';
492                $out .= bouton_radio('type_form', 'sondage', _T("forms:sondage_oui"), $row['type_form'] == 'sondage').'<br />';
493                $out .= fin_cadre_enfonce(true);
494        }
495        else 
496                $out .= "<input type='hidden' name='type_form' value='".$row['type_form']."' />";
497
498        $out .= debut_cadre_enfonce("",true);
499        $out .= "<strong><label for='moderation'>"._T('forms:publication_donnees')."</label></strong>";
500        $out .= "<br />";
501        $out .= bouton_radio("public", "oui", _T('forms:donnees_pub'), $row['public'] == "oui", "");
502        $out .= "<br />";
503        $out .= bouton_radio("public", "non", _T('forms:donnees_prot'), $row['public'] != "oui", "");
504        $out .= "<br />";
505        $out .= fin_cadre_enfonce(true);
506       
507        $out .= debut_cadre_enfonce("",true);
508        $out .= "<strong><label for='moderation'>"._T('forms:moderation_donnees')."</label></strong>";
509        $out .= "<br />";
510        $out .= bouton_radio("moderation", "posteriori", _T('bouton_radio_publication_immediate'), $row['moderation'] != "priori", "");
511        $out .= "<br />";
512        $out .= bouton_radio("moderation", "priori", _T('bouton_radio_moderation_priori'), $row['moderation'] == "priori", "");
513        $out .= "<br />";
514        $out .= fin_cadre_enfonce(true);
515       
516        $out .= "<label for='wrap'>"._T("forms:html_wrapper")."</label> :";
517        $out .= " &nbsp;<textarea name='html_wrap' id='wrap'  class='verdana2' style='width:90%;height:3em;' >".
518        entites_html($row['html_wrap'])."</textarea><br />\n";
519               
520        $out .= "<div align='right'>";
521        $out .= "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo'></div>\n";
522
523        $out .= "</form>";
524        $out .= "</div>";
525        $out .= Forms_fin_cadre_formulaire(true);
526        $out .= "</p>";
527        return $out;
528}
529?>
Note: See TracBrowser for help on using the repository browser.