Changeset 57786 in spip-zone for _plugins_/formitable


Ignore:
Timestamp:
Jan 29, 2012, 12:16:45 AM (8 years ago)
Author:
jluc@…
Message:

menues corrections + écart des traitements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formitable/traiter/table.php

    r57707 r57786  
    1010//
    1111// Notes techniques :
    12 // La gestion des "modification de réponses existantes" est une dupplication 
    13 // de cette partie du traitement 'enregistrement'.
    14 // Ce serait bien de mutualiser le code et la config en sortant cette partie des traitements.
     12// La gestion des autorisations de "modification de réponses existantes" et de 'réponse multiple'
     13// est une dupplication du traitement 'enregistrement', ce qui nécessite de remplir aussi la table
     14// spip_reponses_formulaire, ce qui n'est pas très satisfaisant, mais sinon il faudrait modifier trop de trucs
     15// (par contre le traitement 'simple' ne gère pas ces autorisations)
    1516
    16 // Sécurité
     17// Securite
    1718if (!defined("_ECRIRE_INC_VERSION")) return;
    18 
    19 // convertir le format des dates issu de formidable à un format SQL de type DATE
    20 function traitement_date_fr_vers_sql ($date) {
    21         sscanf ($date, "%2d/%2d/%4d%s",$jour,$mois,$an,$s);
    22         return "$an-$mois-$jour";
    23 };
    24 
    25 // Exemples :
    26 // - $valeur : valeur renvoyée par la saisie
    27 // - $table : table SQL utilisateur destinatrice des données
    28 // - $champ : champ de la table SQL
    29 // - $nom : id de l'input dans le formulaire généré par spip
    30 //
    31 // function traitement_champ_bateau_couleur ($valeur, $table, $champ, $nom)
    32 // function traitement_champ_date_debut ($valeur, $table, $champ, $nom)
    33 // function traitement_champ_evenement_date_debut ($valeur, $table, $champ, $nom)
    34 // function traitement_champ ($valeur, $table, $nom)
    35 
    36 function traitement_champ_naissance ($valeur, $table, $champ, $nom) {
    37         return traitement_date_fr_vers_sql($valeur);
    38 };
    39 
    40 /* exemple d'usage :
    41 function traitement_champ ($valeur, $table, $champ, $nom) {
    42         // Toutes les saisies DATES sont stockées dans un format un champt de type DATE
    43         if (strpos($nom,'date')===0) {
    44                 $valeur = traitement_date_fr_vers_sql($valeur);
    45 //              echo "<br>Reçu date fr et convertit vers SQL = $valeur";
    46         };
    47         return $valeur;
    48 }; */
    4919
    5020function traiter_table_dist($args, $retours){
    5121        include_spip('inc/formidable');
     22    include_spip ('inc/formitable');
    5223        include_spip('base/abstract_sql');
    5324        $options = $args['options'];
    54 
    55         $table_destinataire = $options['table_destinataire'];
    56         $correspondance_champs_formulaire_table = $options['correspondance_champs_formulaire_table'];
    57         $correspondance_champs_formulaire_table = saisies_chaine2tableau($correspondance_champs_formulaire_table);
    58 
    5925        $formulaire = $args['formulaire'];
    6026        $id_formulaire = intval($formulaire['id_formulaire']);
    6127        $saisies = unserialize($formulaire['saisies']);
    6228        $saisies = saisies_lister_par_nom($saisies);
     29
     30    $table_destinataire = $options['table_destinataire'];
     31        $correspondance_champs_formulaire_table = $options['correspondance_champs_formulaire_table'];
     32        $correspondance_champs_formulaire_table = saisies_chaine2tableau($correspondance_champs_formulaire_table);
    6333
    6434        // La personne a-t-elle un compte ?
     
    7444                $cookie = creer_uniqid();
    7545        }
    76        
     46
    7747        // On regarde si c'est une modif d'une réponse existante
    78         $modif_reponse =
    79                 $id_formulaires_reponse
    80                         = intval(_request('deja_enregistre_'.$id_formulaire));
     48        $id_formulaires_reponse = intval(_request('deja_enregistre_'.$id_formulaire));
    8149
    82         // Si la moderation est a posteriori ou que la personne est un boss, on publie direct
     50        // Si la modération est a posteriori ou que la personne est un boss, on publie direct
    8351        if ($options['moderation'] == 'posteriori' or autoriser('instituer', 'formulaires_reponse', $id_formulaires_reponse, null, array('id_formulaire'=>$id_formulaire, 'nouveau_statut'=>'publie')))
    8452                $statut='publie';
     
    11280                $retours['message_erreur'] .= "\n<br/>"._T('formidable:traiter_enregistrement_erreur_base');
    11381        }
    114         // Sinon on continue à mettre à jour
     82        // Sinon on continue à mettre a jour
    11583        else {
    11684                $champs = array();
     
    12391                                        $colname = $correspondance_champs_formulaire_table[$nom];
    12492                                else {
    125                                         $retours['message_erreur'] .= "\n<br/>Erreur : le champ du formulaire ".$nom."n'a pas de correspondance déclarée dans la table utilisateur";
     93                                        $retours['message_erreur'] .= "\n<br/>Erreur : le champ du formulaire ".$nom."n'a pas de correspondance d�clar�e dans la table utilisateur";
    12694                                        break;
    12795                                };
     
    135103                                        $valeur = $f($valeur, $table_destinataire, $colname, $nom);
    136104
    137                         $inserts[$colname] = (is_array($valeur) ? serialize($valeur) : $valeur);
     105                        $insertions[$colname] = (is_array($valeur) ? serialize($valeur) : $valeur);
    138106                        }
    139107                }
    140108                // On modifie l'enregistrement trouvé ou créé
    141                 $inserts['id_formulaires_reponse'] = $id_formulaires_reponse;
     109                $insertions['id_formulaires_reponse'] = $id_formulaires_reponse;
    142110
    143111                // S'il y a bien des choses à modifier
     
    146114//                              sql_updateq ($table_destinataire, $inserts);
    147115//                      else
    148                         // On insère les nouvelles valeurs
    149                         $id= sql_insertq ($table_destinataire, $inserts);
     116                        // On insere les nouvelles valeurs
     117                        $id= sql_insertq ($table_destinataire, $insertions);
    150118
    151119 //                     echo "sql_insertq ($table_destinataire, <pre>".print_r($inserts,1)."</pre>)";
     
    159127
    160128function traiter_table_update_dist($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles){
    161         // Si des champs ont été supprimés, il faut supprimer les réponses à ces champs
     129        // Si des champs ont ete supprimes, il faut supprimer les reponses a ces champs
    162130        // il faut supprimer les colonnes de la table
    163         // mais cela se régle en dehors de formidable
    164         // et mettre à jour la table de correspondance
    165         // mais le plugin ne fait pas de vérification au moment du changement.
     131        // mais cela se regle en dehors de formidable
     132        // et mettre a jour la table de correspondance
     133        // mais le plugin ne fait pas de verification au moment du changement.
    166134}
    167135
Note: See TracChangeset for help on using the changeset viewer.