39e8c6a3eecd014a3beb62fe81633b02284adfb9
4 if (!defined('_ECRIRE_INC_VERSION')) {
8 function formulaires_editer_formulaire_champs_charger($id_formulaire) {
10 $id_formulaire = intval($id_formulaire);
12 // On teste si le formulaire existe
14 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire)
15 and autoriser('editer', 'formulaire', $id_formulaire)
17 $saisies = unserialize($formulaire['saisies']);
18 if (!is_array($saisies)) {
21 $contexte['_saisies'] = $saisies;
22 $contexte['id'] = $id_formulaire;
23 $contexte['saisie_id'] = "formidable_$id_formulaire";
29 function formulaires_editer_formulaire_champs_verifier($id_formulaire) {
30 include_spip('inc/saisies');
33 // Si c'est pas une confirmation ni une annulation
34 if (!_request('enregistrer_confirmation')
35 and !($annulation = _request('annulation'))) {
36 // On récupère le formulaire dans la session
37 $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
39 // On récupère les anciennes saisies
40 $saisies_anciennes = unserialize(sql_getfetsel(
43 'id_formulaire = '.$id_formulaire
47 $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles);
49 // S'il y a des suppressions, on demande confirmation avec attention
50 if ($comparaison['supprimees']) {
51 $erreurs['message_erreur'] = _T('saisies:construire_attention_supprime');
53 } elseif (isset($annulation) and $annulation) {
54 // Si on annule on génère une erreur bidon juste pour réafficher le formulaire
55 $erreurs['pouetpouet'] = true;
61 function formulaires_editer_formulaire_champs_traiter($id_formulaire) {
62 include_spip('inc/saisies');
64 $id_formulaire = intval($id_formulaire);
66 if (_request('revert')) {
67 session_set("constructeur_formulaire_formidable_$id_formulaire");
68 $retours = array('editable'=>true);
71 if (_request('enregistrer') or _request('enregistrer_confirmation')) {
72 // On récupère le formulaire dans la session
73 $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
75 // On récupère les anciennes saisies
76 $saisies_anciennes = unserialize(sql_getfetsel(
79 'id_formulaire = '.$id_formulaire
82 // On envoie les nouvelles dans la table dans la table
86 'saisies' => serialize($saisies_nouvelles)
88 'id_formulaire = '.$id_formulaire
91 // Si c'est bon on appelle d'éventuelles fonctions d'update des traitements
92 // puis on renvoie vers la config des traitements
94 // On va chercher les traitements
95 $traitements = unserialize(sql_getfetsel(
98 'id_formulaire = '.$id_formulaire
101 // Pour chaque traitements on regarde s'i y a une fonction d'update
102 if (is_array($traitements)) {
103 foreach ($traitements as $type_traitement => $traitement) {
104 if ($update = charger_fonction('update', "traiter/$type_traitement", true)) {
105 $update($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles);
109 // On redirige vers la config suivante
110 $retours['redirect'] = parametre_url(
113 generer_url_ecrire('formulaire_edit'),