source: spip-zone/_plugins_/abomailmans/formulaires/abomailman_creation_liste.php @ 47993

Last change on this file since 47993 was 47993, checked in by yffic@…, 8 years ago

Nommer différemment le paramètre URL et l'élément de tableau de retour de la fonction formulaires_abomailman_creation_liste_charger_dist, sinon le paramêtre URL est supprimé par le système CVT. Ceci corrige le bug suivant : prenez une liste existante, passez en modification, supprimez l'email de la liste pour provoquer l'erreur dans verifier, et validez : le formulaire affiché est vide.

File size: 4.1 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5include_spip('base/abstract_sql');
6
7// chargement des valeurs par defaut des champs du formulaire
8function formulaires_abomailman_creation_liste_charger_dist($id_abomailman = ""){
9        //initialise les variables d'environnement pas défaut
10        $valeurs = array();
11        $valeurs['editable'] = true; 
12
13        // On verifie que la liste existe
14        if ($id_abomailman){
15                $valeurs = sql_fetsel('*','spip_abomailmans',"id_abomailman=$id_abomailman");
16                $valeurs['langue'] = $valeurs['lang'];
17                if(!$valeurs['id_abomailman']){
18                        $valeurs['editable'] = false;
19                        $valeurs['message_erreur'] = _T('abomailmans:liste_non_existante');
20                }
21        }       
22       
23        if(!$valeurs['langue']){
24                $valeurs['langue'] = lang_select();
25        }
26        unset($valeurs['lang']);
27
28        $recuptemplate = explode('&',$valeurs['modele_defaut']);
29        $valeurs['template'] = $recuptemplate[0];
30        $valeurs['envoi_liste_parametres']=recup_param($valeurs['modele_defaut']);
31         
32        return $valeurs;
33}
34
35function formulaires_abomailman_creation_liste_verifier_dist($id_abomailman = ""){
36
37        //initialise le tableau des erreurs
38        $erreurs = array();
39
40        // Faire une fonction de verif sur le mail et le titre pour validite
41        $titre = _request('titre');
42        $descriptif = _request('descriptif');
43        $email = _request('email');
44        $email_sympa = _request('email_subscribe');
45        $email_sympa = _request('email_unsubscribe');
46        $email_sympa = _request('email_sympa');
47        $valeurs['template'] = str_replace('\'','',_request('template'));
48        $valeurs['envoi_liste_parametres'] = _request('envoi_liste_parametres');
49        //if($valeurs['template']) $valeurs['template'];
50        $valeurs['periodicite'] = _request('periodicite');
51        $desactive = _request('desactive');
52        $lang = _request('lang');
53
54        // Si on fait une suppression, on ne vérifie pas le reste
55        if($desactive != '2'){
56                if(!$email){
57                        $erreurs['email'] = _T("abomailmans:erreur_email_liste_oublie");
58                }
59
60                if(!$titre){
61                        $erreurs['titre'] = _T("abomailmans:titre_liste_obligatoire");
62                }
63
64                if (!count($erreurs)){
65                        include_spip('inc/filtres'); # pour email_valide()
66                        if (!email_valide($email)){
67                                $erreurs['email'] = _T("abomailmans:email_valide");
68                        }
69                }
70        }
71
72    //message d'erreur genéralisé
73    if (count($erreurs)) {
74        $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
75    }
76
77    return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
78}
79
80function formulaires_abomailman_creation_liste_traiter_dist($id_abomailman = ""){
81   $message = array();
82        $message['editable'] = true;
83        $valeurs['envoi_liste_parametres'] = _request('envoi_liste_parametres');
84
85        $datas = array();
86
87    // Récupération des données
88        $datas['titre'] = _request('titre');
89        $datas['descriptif'] = _request('descriptif');
90        $datas['email'] = _request('email');
91        $datas['email_subscribe'] = _request('email_subscribe');
92        $datas['email_unsubscribe'] = _request('email_unsubscribe');
93        $datas['email_sympa'] = _request('email_sympa');
94        $datas['desactive'] = _request('desactive');
95        $datas['modele_defaut'] = str_replace('\'','',_request('template'))."".$valeurs['envoi_liste_parametres'];
96        $datas['periodicite'] = _request('periodicite');
97        $datas['lang'] = _request('langue');
98
99        // on récupère les données de la liste
100        if(intval($id_abomailman)){
101                if($datas['desactive'] == '2'){
102                        sql_delete("spip_abomailmans","id_abomailman = $id_abomailman");
103                        $message['message_ok'] = _T('abomailmans:liste_supprimee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
104                        $message['editable'] = false;
105                }else{
106                        sql_updateq("spip_abomailmans",$datas,"id_abomailman = $id_abomailman");
107                        $message['message_ok'] = _T('abomailmans:liste_updatee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
108                }
109        }else{
110                $id_abomailman = sql_insertq("spip_abomailmans",$datas);
111                $message['message_ok'] = _T('abomailmans:liste_creee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
112                $message['editable'] = false;
113        }
114
115        $message['redirect'] = parametre_url(self(),'id_abo',$id_abomailman);
116
117   return $message;
118}
119
120?>
Note: See TracBrowser for help on using the repository browser.