[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / formidable_1_0 / formulaires / editer_formulaire_champs.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6
7 function formulaires_editer_formulaire_champs_charger($id_formulaire){
8 $contexte = array();
9 $id_formulaire = intval($id_formulaire);
10
11 // On teste si le formulaire existe
12 if ($id_formulaire
13 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire)
14 and autoriser('editer', 'formulaire', $id_formulaire)
15 ){
16 $saisies = unserialize($formulaire['saisies']);
17 if (!is_array($saisies)) $saisies = array();
18 $contexte['_saisies'] = $saisies;
19 $contexte['id'] = $id_formulaire;
20 }
21
22 return $contexte;
23 }
24
25 function formulaires_editer_formulaire_champs_verifier($id_formulaire){
26 include_spip('inc/saisies');
27 $erreurs = array();
28
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");
33
34 // On récupère les anciennes saisies
35 $saisies_anciennes = unserialize(sql_getfetsel(
36 'saisies',
37 'spip_formulaires',
38 'id_formulaire = '.$id_formulaire
39 ));
40
41 // On compare
42 $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles);
43
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');
47 }
48 // Si on annule on génère une erreur bidon juste pour réafficher le formulaire
49 elseif ($annulation){
50 $erreurs['pouetpouet'] = true;
51 }
52
53 return $erreurs;
54 }
55
56 function formulaires_editer_formulaire_champs_traiter($id_formulaire){
57 include_spip('inc/saisies');
58 $retours = array();
59 $id_formulaire = intval($id_formulaire);
60
61 // On récupère le formulaire dans la session
62 $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
63
64 // On récupère les anciennes saisies
65 $saisies_anciennes = unserialize(sql_getfetsel(
66 'saisies',
67 'spip_formulaires',
68 'id_formulaire = '.$id_formulaire
69 ));
70
71 // On envoie les nouvelles dans la table dans la table
72 $ok = sql_updateq(
73 'spip_formulaires',
74 array(
75 'saisies' => serialize($saisies_nouvelles)
76 ),
77 'id_formulaire = '.$id_formulaire
78 );
79
80 // Si c'est bon on appelle d'éventuelles fonctions d'update des traitements puis on renvoie vers la config des traitements
81 if ($ok){
82 // On va chercher les traitements
83 $traitements = unserialize(sql_getfetsel(
84 'traitements',
85 'spip_formulaires',
86 'id_formulaire = '.$id_formulaire
87 ));
88
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);
94 }
95 }
96
97 // On redirige vers la config suivante
98 $retours['redirect'] = parametre_url(
99 parametre_url(
100 parametre_url(
101 generer_url_ecrire('formulaire_edit')
102 , 'id_formulaire', $id_formulaire
103 )
104 , 'configurer', 'traitements'
105 )
106 , 'avertissement', 'oui'
107 );
108 }
109
110 return $retours;
111 }
112
113 ?>