Changeset 6556 in spip-zone


Ignore:
Timestamp:
Oct 23, 2006, 4:24:39 PM (13 years ago)
Author:
cedric@…
Message:

suite du nettoyage, ca doit encore moins marcher la ...

Location:
_plugins_/_stable_/forms/forms2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/forms/forms2/base/forms.php

    r6538 r6556  
    6363$formschamp_field = array(
    6464                "id_form"       => "bigint(21) NOT NULL",
     65                "champ" => "varchar(100)",
    6566                "cle" => "bigint(21) NOT NULL",
    66                 "champ" => "varchar(100)",
    6767                "titre" => "text",
    6868                "type" => "varchar(100)",
    6969                "obligatoire" => "varchar(3)",
    70                 "id_groupe" => "bigint(21) NOT NULL",
     70                "extra_info" => "text", // une info supplementaire par champ a utiliser librement ex : type mot->id_groupe, type url->verif, type fichier -> taille
    7171);
    7272$formschamp_key = array(
    73         "PRIMARY KEY"   => "id_form, cle",
    74         "KEY" => "champ"
     73        "PRIMARY KEY"   => "id_form, champ",
     74        "KEY" => "cle"
    7575);
    7676
     
    8181$formschampchoix_field = array(
    8282                "id_form"       => "bigint(21) NOT NULL",
    83                 "cle" => "bigint(21) NOT NULL",
     83                "champ" => "varchar(100)",
    8484                "choix" => "varchar(100) NOT NULL DEFAULT ''",
    8585                "titre" => "text"
    8686);
    8787$formschampchoix_key = array(
    88         "PRIMARY KEY"   => "id_form, cle, choix",
     88        "PRIMARY KEY"   => "id_form, champ, choix",
    8989        "KEY" => "choix"
    9090);
  • _plugins_/_stable_/forms/forms2/exec/forms_edit.php

    r6546 r6556  
    1414include_spip('inc/forms');
    1515
    16 function bloc_edition_champ($t, $link) {
     16function debut_block_route($id,$visible){
     17        $display = $visible?'block':'none';
     18        return "<script type='text/javascript'><!--
     19                                        document.write('<div id=\"$id\" style=\"display: $display; margin-top: 1;\">');
     20                                        //--></script>
     21                                        <noscript>
     22                                        <div id='bock_email_route_$code' style='display: block;'>
     23                                        </noscript>";   
     24}
     25function fin_block_route(){
     26        return  "<script type='text/javascript'><!--
     27                                        document.write('<\/div>');
     28                                        //--></script>
     29                                        <noscript>
     30                                                </div>
     31                                        </noscript>";
     32}
     33function Forms_bloc_routage_mail($id_form,$email){
     34                $out = "";
     35                // Routage facultatif des emails en fonction d'un champ select
     36                $email_route_known = false;
     37                $jshide = "";
     38                $s = "";
     39                $options = "";
     40                $res2 = spip_query("SELECT * FROM spip_forms_champs WHERE type='select' AND id_form="._q($id_form));
     41                while ($row2 = spip_fetch_array($res2)) {
     42                        $visible = false;
     43                        $code = $$row2['champ'];
     44                        $options .= "<option value='$code'";
     45                        if ($email['route'] == $code){
     46                                $options .= " selected='selected'";
     47                                $email_route_known = $visible = true;
     48                        }
     49                        $options .= ">" . $row2['titre'] . "</option>\n";
     50                        $s .= debut_block_route("bock_email_route_$code",$visible);
     51                        $jshide .=  "cacher_email_route('bock_email_route_$code');\n";
     52                       
     53                        $s .= "<table id ='email_route_$code'>\n";
     54                        $s .= "<tr><th>".$row2['titre']."</th><th>";
     55                        $s .= "<strong><label for='email_route_$code'>"._T('email_2')."</label></strong>";
     56                        $s .= "</th></tr>\n";
     57                        $js = "";
     58
     59                        $res3 = spip_query("SELECT * FROM spip_forms_champs_choiw WHERE id_form="._q($id_form)." AND champ="._q($row2['champ']));
     60                        while($row3 = spip_fetch_array($res3)){
     61                                $s .= "<tr><td>".$row3['titre']."</td><td>";
     62                                $s .= "<input type='text' name='email[".$row3['choix']."]' value=\"";
     63                                $s .= isset($email[$row3['choix']])?entites_html($email[$row3['choix']]):"";
     64                                $s .= "\" class='fondl verdana2' size='20'$js>";
     65                                $s .= "</td></tr>";
     66                        }
     67                        $s .="</table>";
     68                        $s .= fin_block_route("bock_email_route_$code",$visible);
     69                }
     70                if (strlen($s)){
     71                        $jshide = "<script type='text/javascript'><!--
     72                        function montrer_email_route(obj) {
     73                                layer = findObj(obj);
     74                                if (layer)
     75                                        layer.style.display = 'block';
     76                        }
     77                        function cacher_email_route(obj) {
     78                                layer = findObj(obj);
     79                                if (layer)
     80                                        layer.style.display = 'none';
     81                        }
     82                        function update_email_route_visibility(obj){
     83                                $jshide
     84                                cacher_email_route('bock_email_route_');
     85                                montrer_email_route(obj);
     86                        }
     87                        //--></script>\n";
     88                        $out .= $jshide;
     89
     90                        $out .= "<strong><label for='email_route_form'>"._T('forms:choisir_email')."</label></strong> ";
     91                        $out .= "<br />";
     92                        $out .= "<select name='email[route]' id='email_route_form' class='forml'";
     93                        $out .= "onchange='update_email_route_visibility(\"bock_email_route_\"+options[selectedIndex].value)' ";
     94                        $out .= ">\n";
     95                        $out .= "<option value=''>"._T('forms:email_independant')."</option>\n";
     96                        $out .= $options;
     97                        $out .= "</select><br />\n";
     98                }
     99               
     100                $out .= debut_block_route("bock_email_route_",$email_route_known==false);
     101                $out .= "<strong><label for='email_form'>"._T('email_2')."</label></strong> ";
     102                $out .= "<br />";
     103                $out .= "<input type='text' name=\"email[defaut]\" id='email_form' class='forml' ".
     104                        "value=\"".entites_html($email['defaut'])."\" size='40'$js_titre>\n";
     105                $out .= fin_block_route();
     106                $out .= $s;
     107                $out .= "<br/>";
     108                return $out;
     109}
     110
     111function Forms_zone_edition_champs($id_form, $champ_visible, $nouveau_champ){
     112        $out = "";
     113        if (!$id_form) return $out;
     114        $out .= "<a name='champs'></a>";
     115        $out .= "<p><hr><p>\n";
     116        $out .= "<div class='verdana3'>";
     117        $out .= "<strong>"._T("forms:champs_formuaire")."</strong><br />\n";
     118        $out .= _T("forms:info_champs_formulaire");
     119        $out .= "</div>\n";
     120        $out .= "<div id='forms_lang'></div>";
     121
     122        if ($row = spip_fetch_array(spip_query("SELECT MAX(cle) AS clemax, MIN(cle) AS clemin FROM spip_forms_champs WHERE id_form="._q($id_form)))){
     123                $index_min = $row['clemin'];
     124                $index_max = $row['clemax'];
     125        }
     126
     127        $res = spip_query("SELECT * FROM spip_forms_champs WHERE id_form="._q($id_form));
     128        while ($row = spip_fetch_array($res)) {
     129                $champ = $row['champ'];
     130                $visible = ($champ == $champ_visible);
     131                $nouveau = ($champ == $nouveau_champ);
     132                $obligatoire = $row['obligatoire'];
     133                $aff_min = $index > $index_min;
     134                $aff_max = $index < $index_max;
     135                $type = $row['type'];
     136
     137                if ($nouveau) $out .= "<a name='nouveau_champ'></a>";
     138                else if ($visible) $out .= "<a name='champ_visible'></a>";
     139                $out .= "<p>\n";
     140                if (!in_array($type,array('separateur','textestatique')))
     141                        $out .= debut_cadre_relief("", true);
     142                else
     143                        $out .= debut_cadre_enfonce("", true);
     144               
     145                $out .= "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
     146                if ($aff_min || $aff_max) {
     147                        $out .= "<div class='verdana1' style='float: right; font-weight: bold;'>";
     148                        if ($aff_min) {
     149                                $link = parametre_url($form_link,'monter', $index);
     150                                $out .= "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0' alt='"._T("forms:champ_monter")."'></a>";
     151                        }
     152                        if ($aff_min && $aff_max) {
     153                                $out .= " | ";
     154                        }
     155                        if ($aff_max) {
     156                                $link = parametre_url($form_link,'descendre', $index);
     157                                $out .= "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0' alt='"._T("forms:champ_descendre")."'></a>";
     158                        }
     159                        $out .= "</div>\n";
     160                }
     161
     162                $out .= $visible ? bouton_block_visible("champ_$champ") : bouton_block_invisible("champ_$champ");
     163                $out .= "<strong id='titre_nom_$champ'>".typo($row['nom'])."</strong>";
     164                $out .= "<br /></div>";
     165                $out .= "(".Forms_nom_type_champ($row['type']).")\n";
     166                $out .= $visible ? debut_block_visible("champ_$champ") : debut_block_invisible("champ_$champ");
     167
     168                // Modifier un champ
     169                $out .= "<div id='forms_lang_nom_$champ'></div>";
     170                $out .= "<form class='forms_champ' method='POST' action='"
     171                        . $form_link . "#champ_visible"
     172                        . "' style='border: 0px; margin: 0px;'>";
     173                $out .= "<input type='hidden' name='modif_champ' value='$champ' />";
     174
     175                $out .= "<div class='verdana2'>";
     176                $out .= "<p>";
     177                if ($nouveau) {
     178                        $out .= "<script type='text/javascript'><!-- \nvar antifocus_champ = false; // --></script>\n";
     179                        $js = " onfocus=\"if(!antifocus_champ){this.value='';antifocus_champ=true;}\"";
     180                }
     181                else $js = "";
     182                if ($type=='separateur'){
     183                        $out .= "<label for='nom_$champ'>"._T("forms:champ_nom_bloc")."</label> :";
     184                        $out .= " &nbsp;<input type='text' name='nom_champ' id='nom_$champ' value=\"".
     185                                entites_html($row['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
     186                }
     187                else if ($type=='textestatique'){
     188                        $out .= "<label for='nom_$champ'>"._T("forms:champ_nom_texte")."</label> :<br/>";
     189                        $out .= " &nbsp;<textarea name='nom_champ' id='nom_$champ'  class='verdana2' style='width:100%;height:5em;' $js>".
     190                                entites_html($row['nom'])."</textarea><br />\n";
     191                }
     192                else{
     193                        $out .= "<label for='nom_$champ'>"._T("forms:champ_nom")."</label> :";
     194                        $out .= " &nbsp;<input type='text' name='nom_champ' id='nom_$champ' value=\"".
     195                                entites_html($row['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
     196                        $out .= Forms_bloc_edition_champ($row, $form_link);
     197                }
     198
     199                $out .= "<div align='right'>";
     200                $out .= "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo verdana2'></div>\n";
     201                $out .= "</div>\n";
     202                $out .= "</form>";
     203                // Supprimer un champ
     204                $link = parametre_url($form_link,'supp_champ', $champ);
     205                $out .= "<div style='float: left;'>";
     206                icone_horizontale(_T("forms:supprimer_champ"), $link."#champs","../"._DIR_PLUGIN_FORMS. "/img_pack/form-24.png", "supprimer.gif");
     207                $out .= "</div>\n";
     208
     209                $out .= fin_block();
     210                if (!in_array($t['type'],array('separateur','textestatique')))
     211                        $out .= fin_cadre_relief(true);
     212                else
     213                        $out .= fin_cadre_enfonce(true);
     214        }
     215
     216        // Ajouter un champ
     217        $out .= "<p>";
     218        $out .= debut_cadre_enfonce("", true);
     219        $out .= "<form method='POST' action='"
     220                . $form_link. "#nouveau_champ"
     221                . "' style='border: 0px; margin: 0px;'>";
     222        $out .= "<strong>"._T("forms:ajouter_champ")."</strong><br />\n";
     223        $out .= _T("forms:ajouter_champ_type");
     224        $out .= " \n";
     225       
     226        $types = Forms_liste_types_champs();
     227        $out .= "<select name='ajout_champ' value='' class='fondo'>\n";
     228        foreach ($types as $type) {
     229                $out .= "<option value='$type'>".Forms_nom_type_champ($type)."</option>\n";
     230        }
     231        $out .= "</select>\n";
     232        $out .= " &nbsp; <input type='submit' name='valider' id='ajout_champ' VALUE='"._T('bouton_ajouter')."' class='fondo'>";
     233        $out .= "</form>\n";
     234        $out .= fin_cadre_enfonce(true);
     235        return $out;
     236}
     237
     238function Forms_bloc_edition_champ($row, $link) {
    17239        global $couleur_claire;
    18240
    19         $code = $t['code'];
    20         $obligatoire = $t['obligatoire'];
    21         $type = $t['type'];
    22         $type_ext = $t['type_ext'];
     241        $champ = $row['champ'];
     242        $type = $row['type'];
     243        $titre = $row['titre'];
     244        $obligatoire = $row['obligatoire'];
     245        $extra_info = $row['extra_info'];
     246       
     247        $out = "";
    23248
    24249        if ($type != 'separateur'){
    25250                $checked = ($obligatoire == 'oui') ? " checked='checked'" : "";
    26                 echo "&nbsp; &nbsp; <input type='checkbox' name='champ_obligatoire' value='oui' id='obli_$code'$checked> ";
    27                 echo "<label for='obli_$code'>"._T("forms:edit_champ_obligatoire")."</label>";
    28                 echo "<br />\n";
     251                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_obligatoire' value='oui' id='obli_$champ'$checked> ";
     252                $out .= "<label for='obli_$champ'>"._T("forms:edit_champ_obligatoire")."</label>";
     253                $out .= "<br />\n";
    29254        }
    30255
    31256        if ($type == 'url') {
    32                 $checked = ($t['verif'] == 'oui') ? " checked='checked'" : "";
    33                 echo "&nbsp; &nbsp; <input type='checkbox' name='champ_verif' value='oui' id='verif_$code'$checked> ";
    34                 echo "<label for='verif_$code'>"._T("forms:verif_web")."</label>";
    35                 echo "<br />\n";
     257                $checked = ($extra_info == 'oui') ? " checked='checked'" : "";
     258                $out .= "&nbsp; &nbsp; <input type='checkbox' name='champ_verif' value='oui' id='verif_$champ'$checked> ";
     259                $out .= "<label for='verif_$champ'>"._T("forms:verif_web")."</label>";
     260                $out .= "<br />\n";
    36261        }
    37262        if ($type == 'select' || $type == 'multiple') {
    38263                global $ajout_choix;
    39264
    40                 echo "<div style='margin: 5px; padding: 5px; border: 1px dashed $couleur_claire;'>";
    41                 echo _T("forms:liste_choix")."&nbsp;:<br />\n";
    42                 foreach ($type_ext as $code_choix => $nom_choix) {
    43                         if ($ajout_choix == $code_choix) {
    44                                 echo "<script type='text/javascript'><!-- \nvar antifocus_choix= false; // --></script>\n";
     265                $out .= "<div style='margin: 5px; padding: 5px; border: 1px dashed $couleur_claire;'>";
     266                $out .= _T("forms:liste_choix")."&nbsp;:<br />\n";
     267                $res2 = spip_query("SELECT * FROM spip_forms_champs_choix WHERE champ="._q($champ));
     268                while ($row2 = spip_fetch_array($res2)){
     269                        $choix = $row2['choix'];
     270                        if ($ajout_choix == $choix) {
     271                                $out .= "<script type='text/javascript'><!-- \nvar antifocus_choix= false; // --></script>\n";
    45272                                $js = " onfocus=\"if(!antifocus_choix){this.value='';antifocus_choix=true;}\"";
    46273                        }
    47274                        else $js = "";
    48                         echo "<input type='text' id='nom_$code_choix' name='$code_choix' value=\"".entites_html($nom_choix)."\" ".
     275                        $out .= "<input type='text' id='nom_$choix' name='$choix' value=\"".entites_html($row2['titre'])."\" ".
    49276                                "class='fondl verdana2' size='20'$js>";
    50277                        //
    51                         echo " <input style='display: none;' type='submit' name='modif_choix' value=\""._T('bouton_modifier')."\" class='fondo verdana2'>";
     278                        $out .= " <input style='display: none;' type='submit' name='modif_choix' value=\""._T('bouton_modifier')."\" class='fondo verdana2'>";
    52279                        $supp_link = $link;
    53                         $supp_link = parametre_url($supp_link,'supp_choix', $code_choix);
    54                         echo " &nbsp; <span class='verdana1'>[<a href='".$supp_link."#champ_visible'>".
     280                        $supp_link = parametre_url($supp_link,'supp_choix', $choix);
     281                        $out .= " &nbsp; <span class='verdana1'>[<a href='".$supp_link."#champ_visible'>".
    55282                                _T("forms:supprimer_choix")."</a>]</span>";
    56                         echo "<br />\n";
    57                 }
    58                 echo "<br /><input type='submit' name='ajout_choix' value=\""._T("forms:ajouter_choix")."\" class='fondo verdana2'>";
    59 
    60                 echo "</div>";
     283                        $out .= "<br />\n";
     284                }
     285                $out .= "<br /><input type='submit' name='ajout_choix' value=\""._T("forms:ajouter_choix")."\" class='fondo verdana2'>";
     286
     287                $out .= "</div>";
    61288                if ($type=='select')
    62                         echo "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_multiple")."\" class='fondl verdana2'>";
     289                        $out .= "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_multiple")."\" class='fondl verdana2'>";
    63290                if ($type=='multiple')
    64                         echo "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_unique")."\" class='fondl verdana2'>";
    65                 echo "<br />\n";
     291                        $out .= "<br /><input type='submit' name='switch_select_multi' value=\""._T("forms:changer_choix_unique")."\" class='fondl verdana2'>";
     292                $out .= "<br />\n";
    66293        }
    67294        if ($type == 'mot') {
    68                 echo "<label for='groupe_$code'>"._T("forms:champ_nom_groupe")."</label> :";
    69                 echo " &nbsp;<select name='groupe_champ' value='0' id='groupe_$code' class='fondo verdana2'>\n";
    70                 $query = "SELECT * FROM spip_groupes_mots ORDER BY titre";
    71                 $result = spip_query($query);
    72                 while ($row = spip_fetch_array($result)) {
    73                         $id_groupe = $row['id_groupe'];
    74                         $titre_groupe = supprimer_tags(typo($row['titre']));
    75                         $selected = ($id_groupe == $type_ext['id_groupe']) ? " selected='selected'": "";
    76                         echo "<option value='$id_groupe'$selected>$titre_groupe</option>\n";
    77                 }
    78                 echo "</select>";
    79                 echo "<br />\n";
     295                $out .= "<label for='groupe_$champ'>"._T("forms:champ_nom_groupe")."</label> :";
     296                $out .= " &nbsp;<select name='groupe_champ' value='0' id='groupe_$champ' class='fondo verdana2'>\n";
     297                $res2 = spip_query("SELECT * FROM spip_groupes_mots ORDER BY titre");
     298                while ($row2 = spip_fetch_array($result)) {
     299                        $id_groupe = $row2['id_groupe'];
     300                        $titre_groupe = supprimer_tags(typo($row2['titre']));
     301                        $selected = ($id_groupe == $row['extra_info']) ? " selected='selected'": "";
     302                        $out .= "<option value='$id_groupe'$selected>$titre_groupe</option>\n";
     303                }
     304                $out .= "</select>";
     305                $out .= "<br />\n";
    80306        }
    81307        if ($type == 'fichier') {
    82                 $taille = intval($type_ext['taille']);
     308                $taille = intval($row['extra_info']);
    83309                if (!$taille) $taille = '';
    84                 echo "<label for='taille_$code'>"._T("forms:taille_max")."</label> : ";
    85                 echo "<input type='text' name='taille_champ' value='$taille' id='taille_$code' class='fondo verdana2'>\n";
    86                 echo "<br />\n";
    87         }
     310                $out .= "<label for='taille_$champ'>"._T("forms:taille_max")."</label> : ";
     311                $out .= "<input type='text' name='taille_champ' value='$taille' id='taille_$champ' class='fondo verdana2'>\n";
     312                $out .= "<br />\n";
     313        }
     314        return $out;
    88315}
    89316
     
    214441                $champ_visible = NULL;
    215442                // Ajout d'un champ
    216                 if (($type = $ajout_champ) && Forms_types_champs_autorises($type)) {
     443                if (($type = $ajout_champ) && Forms_type_champ_autorise($type)) {
    217444                        $code = code_nouveau_champ($structure,$type);
    218445                        $nom = _T("forms:nouveau_champ");
     
    319546}
    320547
    321 function debut_block_route($id,$visible){
    322         $display = $visible?'block':'none';
    323         return "<script type='text/javascript'><!--
    324                                         document.write('<div id=\"$id\" style=\"display: $display; margin-top: 1;\">');
    325                                         //--></script>
    326                                         <noscript>
    327                                         <div id='bock_email_route_$code' style='display: block;'>
    328                                         </noscript>";   
    329 }
    330 function fin_block_route(){
    331         return  "<script type='text/javascript'><!--
    332                                         document.write('<\/div>');
    333                                         //--></script>
    334                                         <noscript>
    335                                                 </div>
    336                                         </noscript>";
    337 }
    338 
    339548function Forms_formulaire_confirme_suppression($id_form,$nb_reponses,$form_link,$retour){
    340549        global $spip_lang_right;
     
    371580
    372581        $id_form = intval(_request('id_form'));
     582       
    373583        $new = _request('new');
    374584        $supp_form = intval(_request('supp_form'));
     
    382592        $sondage = _request('sondage');
    383593       
    384         $nom_champ = _request('nom_champ');
    385         $champ_obligatoire = _request('champ_obligatoire');
    386         $modif_champ = _request('modif_champ');
    387         $ajout_champ = _request('ajout_champ');
    388         $supp_champ = _request('supp_champ');
    389 
    390         $supp_choix = _request('supp_choix');
    391 
    392         $monter = _request('monter');
    393         $descendre = _request('descendre');
    394        
    395594        Forms_install();
    396595
     
    411610        if ($retour)
    412611                $form_link = parametre_url($form_link,"retour",urlencode($retour));
    413 
    414612
    415613        //
     
    441639                //
    442640                list($id_form,$champ_visible,$nouveau_champ) = forms_update();
    443                
    444641                $query = "SELECT * FROM spip_forms WHERE id_form=$id_form";
    445642                $result = spip_query($query);
     
    482679                echo Forms_formulaire_confirm_suppression($id_form,$nb_reponses,$form_link,$retour);
    483680
     681        //
     682        // Cartouche
     683        //
    484684        if ($id_form) {
    485685                debut_cadre_relief("../"._DIR_PLUGIN_FORMS."/img_pack/form-24.png");
     
    591791                echo "</textarea><br />\n";
    592792
    593 
    594                
    595                 // Routage facultatif des emails en fonction d'un champ select
    596                 $email_route_known = false;
    597                 $jshide = "";
    598                 $s = "";
    599                 $options = "";
    600                 $res2 = spip_query("SELECT * FROM spip_forms_champs WHERE type='select' AND id_form="._q($id_form));
    601                 while ($row2 = spip_fetch_array($res2)) {
    602                         $visible = false;
    603                         $code = $$row2['champ'];
    604                         $options .= "<option value='$code'";
    605                         if ($email['route'] == $code){
    606                                 $options .= " selected='selected'";
    607                                 $email_route_known = $visible = true;
    608                         }
    609                         $options .= ">" . $row2['titre'] . "</option>\n";
    610                         $s .= debut_block_route("bock_email_route_$code",$visible);
    611                         $jshide .=  "cacher_email_route('bock_email_route_$code');\n";
    612                        
    613                         $s .= "<table id ='email_route_$code'>\n";
    614                         $s .= "<tr><th>".$row2['titre']."</th><th>";
    615                         $s .= "<strong><label for='email_route_$code'>"._T('email_2')."</label></strong>";
    616                         $s .= "</th></tr>\n";
    617                         $js = "";
    618 
    619                         $res3 = spip_query("SELECT * FROM spip_forms_champs_choiw WHERE id_form="._q($id_form)." AND cle="._q($row2['cle']));
    620                         while($row3 = spip_fetch_array($res3)){
    621                                 $s .= "<tr><td>".$row3['titre']."</td><td>";
    622                                 $s .= "<input type='text' name='email[".$row3['choix']."]' value=\"";
    623                                 $s .= isset($email[$row3['choix']])?entites_html($email[$row3['choix']]):"";
    624                                 $s .= "\" class='fondl verdana2' size='20'$js>";
    625                                 $s .= "</td></tr>";
    626                         }
    627                         $s .="</table>";
    628                         $s .= fin_block_route("bock_email_route_$code",$visible);
    629                 }
    630                 if (strlen($s)){
    631                         $jshide = "<script type='text/javascript'><!--
    632                         function montrer_email_route(obj) {
    633                                 layer = findObj(obj);
    634                                 if (layer)
    635                                         layer.style.display = 'block';
    636                         }
    637                         function cacher_email_route(obj) {
    638                                 layer = findObj(obj);
    639                                 if (layer)
    640                                         layer.style.display = 'none';
    641                         }
    642                         function update_email_route_visibility(obj){
    643                                 $jshide
    644                                 cacher_email_route('bock_email_route_');
    645                                 montrer_email_route(obj);
    646                         }
    647                         //--></script>\n";
    648                         echo $jshide;
    649 
    650                         echo "<strong><label for='email_route_form'>"._T('forms:choisir_email')."</label></strong> ";
    651                         echo "<br />";
    652                         echo "<select name='email[route]' id='email_route_form' class='forml'";
    653                         echo "onchange='update_email_route_visibility(\"bock_email_route_\"+options[selectedIndex].value)' ";
    654                         echo ">\n";
    655                         echo "<option value=''>"._T('forms:email_independant')."</option>\n";
    656                         echo $options;
    657                         echo "</select><br />\n";
    658                 }
    659                
    660                 echo debut_block_route("bock_email_route_",$email_route_known==false);
    661                 echo "<strong><label for='email_form'>"._T('email_2')."</label></strong> ";
    662                 echo "<br />";
    663                 echo "<input type='text' name=\"email[defaut]\" id='email_form' class='forml' ".
    664                         "value=\"".entites_html($email['defaut'])."\" size='40'$js_titre>\n";
    665                 echo fin_block_route();
    666                 echo $s;
    667                 echo "<br/>";
    668                
    669                 //-----
     793                echo Forms_bloc_routage_mail($id_form,$email);
    670794
    671795                echo "<strong><label for='confirm_form'>"._T('forms:confirmer_reponse')."</label></strong> ";
     
    718842                // Creer / modifier des champs
    719843                //
    720                 if ($id_form) {
    721                         echo "<a name='champs'></a>";
    722                         echo "<p><hr><p>\n";
    723                         echo "<div class='verdana3'>";
    724                         echo "<strong>"._T("forms:champs_formuaire")."</strong><br />\n";
    725                         echo _T("forms:info_champs_formulaire");
    726                         echo "</div>\n";
    727                         echo "<div id='forms_lang'></div>";
    728 
    729                         if (count($structure)) {
    730                                 $keys = array_keys($structure);
    731                                 $index_min = min($keys);
    732                                 $index_max = max($keys);
    733                         }
    734 
    735                         foreach ($structure as $index => $t) {
    736                                 $code = $t['code'];
    737                                 $visible = ($code == $champ_visible);
    738                                 $nouveau = ($code == $nouveau_champ);
    739                                 $obligatoire = $t['obligatoire'];
    740                                 $aff_min = $index > $index_min;
    741                                 $aff_max = $index < $index_max;
    742                                 $type = $t['type'];
    743 
    744                                 if ($nouveau) echo "<a name='nouveau_champ'></a>";
    745                                 else if ($visible) echo "<a name='champ_visible'></a>";
    746                                 echo "<p>\n";
    747                                 if (!in_array($type,array('separateur','textestatique')))
    748                                         debut_cadre_relief();
    749                                 else
    750                                         debut_cadre_enfonce();
    751                                
    752                                 echo "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
    753                                 if ($aff_min || $aff_max) {
    754                                         echo "<div class='verdana1' style='float: right; font-weight: bold;'>";
    755                                         if ($aff_min) {
    756                                                 $link = parametre_url($form_link,'monter', $index);
    757                                                 echo "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0' alt='"._T("forms:champ_monter")."'></a>";
    758                                         }
    759                                         if ($aff_min && $aff_max) {
    760                                                 echo " | ";
    761                                         }
    762                                         if ($aff_max) {
    763                                                 $link = parametre_url($form_link,'descendre', $index);
    764                                                 echo "<a href='".$link."#champs'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0' alt='"._T("forms:champ_descendre")."'></a>";
    765                                         }
    766                                         echo "</div>\n";
    767                                 }
    768 
    769                                 echo $visible ? bouton_block_visible("champ_$code") : bouton_block_invisible("champ_$code");
    770                                 echo "<strong id='titre_nom_$code'>".typo($t['nom'])."</strong>";
    771                                 echo "<br /></div>";
    772                                 echo "(".Forms_nom_type_champ($t['type']).")\n";
    773                                 echo $visible ? debut_block_visible("champ_$code") : debut_block_invisible("champ_$code");
    774 
    775                                 // Modifier un champ
    776                                 echo "<div id='forms_lang_nom_$code'></div>";
    777                                 echo "<form class='forms_champ' method='POST' action='"
    778                                         . $form_link . "#champ_visible"
    779                                         . "' style='border: 0px; margin: 0px;'>";
    780                                 echo "<input type='hidden' name='modif_champ' value='$code' />";
    781 
    782                                 echo "<div class='verdana2'>";
    783                                 echo "<p>";
    784                                 if ($nouveau) {
    785                                         echo "<script type='text/javascript'><!-- \nvar antifocus_champ = false; // --></script>\n";
    786                                         $js = " onfocus=\"if(!antifocus_champ){this.value='';antifocus_champ=true;}\"";
    787                                 }
    788                                 else $js = "";
    789                                 if ($type=='separateur'){
    790                                         echo "<label for='nom_$code'>"._T("forms:champ_nom_bloc")."</label> :";
    791                                         echo " &nbsp;<input type='text' name='nom_champ' id='nom_$code' value=\"".
    792                                                 entites_html($t['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
    793                                 }
    794                                 else if ($type=='textestatique'){
    795                                         echo "<label for='nom_$code'>"._T("forms:champ_nom_texte")."</label> :<br/>";
    796                                         echo " &nbsp;<textarea name='nom_champ' id='nom_$code'  class='verdana2' style='width:100%;height:5em;' $js>".
    797                                                 entites_html($t['nom'])."</textarea><br />\n";
    798                                 }
    799                                 else{
    800                                         echo "<label for='nom_$code'>"._T("forms:champ_nom")."</label> :";
    801                                         echo " &nbsp;<input type='text' name='nom_champ' id='nom_$code' value=\"".
    802                                                 entites_html($t['nom'])."\" class='fondo verdana2' size='30'$js><br />\n";
    803                                         bloc_edition_champ($t, $form_link);
    804                                 }
    805 
    806                                 echo "<div align='right'>";
    807                                 echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo verdana2'></div>\n";
    808                                 echo "</div>\n";
    809                                 echo "</form>";
    810                                 // Supprimer un champ
    811                                 $link = parametre_url($form_link,'supp_champ', $code);
    812                                 echo "<div style='float: left;'>";
    813                                 icone_horizontale(_T("forms:supprimer_champ"), $link."#champs","../"._DIR_PLUGIN_FORMS. "/img_pack/form-24.png", "supprimer.gif");
    814                                 echo "</div>\n";
    815 
    816                                 echo fin_block();
    817                                 if (!in_array($t['type'],array('separateur','textestatique')))
    818                                         fin_cadre_relief();
    819                                 else
    820                                         fin_cadre_enfonce();
    821                         }
    822 
    823                         // Ajouter un champ
    824                         echo "<p>";
    825                         debut_cadre_enfonce();
    826                         echo "<form method='POST' action='"
    827                                 . $form_link. "#nouveau_champ"
    828                                 . "' style='border: 0px; margin: 0px;'>";
    829                         echo "<strong>"._T("forms:ajouter_champ")."</strong><br />\n";
    830                         echo _T("forms:ajouter_champ_type");
    831                         echo " \n";
    832                         $types = array('ligne', 'texte', 'email', 'url', 'select', 'multiple', 'fichier', 'mot','separateur','textestatique');
    833                         echo "<select name='ajout_champ' value='' class='fondo'>\n";
    834                         foreach ($types as $type) {
    835                                 echo "<option value='$type'>".Forms_nom_type_champ($type)."</option>\n";
    836                         }
    837                         echo "</select>\n";
    838                         echo " &nbsp; <input type='submit' name='valider' id='ajout_champ' VALUE='"._T('bouton_ajouter')."' class='fondo'>";
    839                         echo "</form>\n";
    840                         fin_cadre_enfonce();
    841                 }
    842 
     844                echo Forms_zone_edition_champs($id_form, $champ_visible, $nouveau_champ);
     845               
    843846                echo "</div>\n";
    844 
    845847                fin_cadre_formulaire();
    846848        }
     
    849851        fin_page();
    850852}
     853
    851854?>
  • _plugins_/_stable_/forms/forms2/inc/forms.php

    r6546 r6556  
    260260        }
    261261
     262        function Forms_liste_types_champs(){
     263                return array('ligne', 'texte', 'email', 'url', 'select', 'multiple', 'fichier', 'mot','separateur','textestatique');
     264        }
     265        function Forms_type_champ_autorise($type) {
     266                static $t;
     267                if (!$t) {
     268                        $t = array_flip(Forms_liste_types_champs());
     269                }
     270                return isset($t[$type]);
     271        }
    262272        function Forms_nom_type_champ($type) {
    263273                static $noms;
     
    277287                }
    278288                return ($s = $noms[$type]) ? $s : $type;
    279         }
    280 
    281         function Forms_types_champs_autorises($type = '') {
    282                 static $t;
    283                 if (!$t) {
    284                         $t = array_flip(array('ligne', 'texte', 'url', 'email', 'select', 'multiple', 'fichier', 'mot','separateur','textestatique'));
    285                 }
    286                 return $type ? isset($t[$type]) : $t;
    287289        }
    288290
     
    392394                        }
    393395                        if ($type == 'url') {
    394                                 if ($row2['verif'] == 'oui') {
     396                                if ($row2['extra_info'] == 'oui') {
    395397                                        include_spip("inc/sites");
    396398                                        if (!recuperer_page($val)) {
Note: See TracChangeset for help on using the changeset viewer.