4 if (!defined("_ECRIRE_INC_VERSION")) return;
7 function formulaires_editer_formulaire_champs_charger($id_formulaire){
9 $id_formulaire = intval($id_formulaire);
11 // On teste si le formulaire existe
13 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire)
14 and autoriser('editer', 'formulaire', $id_formulaire)
16 $saisies = unserialize($formulaire['saisies']);
17 if (!is_array($saisies)) $saisies = array();
18 $contexte['_saisies'] = $saisies;
19 $contexte['id'] = $id_formulaire;
25 function formulaires_editer_formulaire_champs_verifier($id_formulaire){
26 include_spip('inc/saisies');
29 // Si c'est pas une confirmation ni une annulation
30 if (!_request('confirmation') and !($annulation = _request('annulation'))){
31 // On récupère le formulaire dans la session
32 $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
34 // On récupère les anciennes saisies
35 $saisies_anciennes = unserialize(sql_getfetsel(
38 'id_formulaire = '.$id_formulaire
42 $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles);
44 // S'il y a des suppressions, on demande confirmation avec attention
45 if ($comparaison['supprimees'])
46 $erreurs['message_erreur'] = _T('saisies:construire_attention_supprime');
48 // Si on annule on génère une erreur bidon juste pour réafficher le formulaire
50 $erreurs['pouetpouet'] = true;
56 function formulaires_editer_formulaire_champs_traiter($id_formulaire){
57 include_spip('inc/saisies');
59 $id_formulaire = intval($id_formulaire);
61 // On récupère le formulaire dans la session
62 $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
64 // On récupère les anciennes saisies
65 $saisies_anciennes = unserialize(sql_getfetsel(
68 'id_formulaire = '.$id_formulaire
71 // On envoie les nouvelles dans la table dans la table
75 'saisies' => serialize($saisies_nouvelles)
77 'id_formulaire = '.$id_formulaire
80 // Si c'est bon on appelle d'éventuelles fonctions d'update des traitements puis on renvoie vers la config des traitements
82 // On va chercher les traitements
83 $traitements = unserialize(sql_getfetsel(
86 'id_formulaire = '.$id_formulaire
89 // Pour chaque traitements on regarde s'i y a une fonction d'update
90 if (is_array($traitements))
91 foreach ($traitements as $type_traitement => $traitement){
92 if ($update = charger_fonction('update', "traiter/$type_traitement", true)){
93 $update($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles);
97 // On redirige vers la config suivante
98 $retours['redirect'] = parametre_url(
101 generer_url_ecrire('formulaire_edit')
102 , 'id_formulaire', $id_formulaire
104 , 'configurer', 'traitements'
106 , 'avertissement', 'oui'