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

Last change on this file since 39241 was 39241, checked in by kent1@…, 11 years ago

amélioration du formulaire d'abonnement aux listes

Réparation du formulaire de création de liste qui buguait

Réparation de l'envoi de mail d'inscription / désinscription cassé

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
42        $titre = _request('titre');
43        $descriptif = _request('descriptif');
44        $email = _request('email');
45        $email_sympa = _request('email_subscribe');
46        $email_sympa = _request('email_unsubscribe');
47        $email_sympa = _request('email_sympa');
48        $valeurs['template'] = str_replace('\'','',_request('template'));
49        $valeurs['envoi_liste_parametres'] = _request('envoi_liste_parametres');
50        //if($valeurs['template']) $valeurs['template'];
51        $valeurs['periodicite'] = _request('periodicite');
52        $desactive = _request('desactive');
53        $lang = _request('lang');
54
55        // Si on fait une suppression, on ne vérifie pas le reste
56        if($desactive != '2'){
57                if(!$email){
58                        $erreurs['email'] = _T("abomailmans:erreur_email_liste_oublie");
59                }
60
61                if(!$titre){
62                        $erreurs['titre'] = _T("abomailmans:titre_liste_obligatoire");
63                }
64
65                if (!count($erreurs)){
66                        include_spip('inc/filtres'); # pour email_valide()
67                        if (!email_valide($email)){
68                                $erreurs['email'] = _T("abomailmans:email_valide");
69                        }
70                }
71        }
72
73    //message d'erreur genéralisé
74    if (count($erreurs)) {
75        $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
76    }
77
78    return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
79}
80
81function formulaires_abomailman_creation_liste_traiter_dist($id_abomailman = ""){
82    $message = '';
83        $message['editable'] = true;
84        $valeurs['envoi_liste_parametres'] = _request('envoi_liste_parametres');
85
86        $datas = array();
87
88    // Récupération des données
89        $datas['titre'] = _request('titre');
90        $datas['descriptif'] = _request('descriptif');
91        $datas['email'] = _request('email');
92        $datas['email_subscribe'] = _request('email_subscribe');
93        $datas['email_unsubscribe'] = _request('email_unsubscribe');
94        $datas['email_sympa'] = _request('email_sympa');
95        $datas['desactive'] = _request('desactive');
96        $datas['modele_defaut'] = str_replace('\'','',_request('template'))."".$valeurs['envoi_liste_parametres'];
97        $datas['periodicite'] = _request('periodicite');
98        $datas['lang'] = _request('langue');
99
100    // on récupère les données de la liste
101    if(intval($id_abomailman)){
102        if($datas['desactive'] == '2'){
103                sql_delete("spip_abomailmans","id_abomailman = $id_abomailman");
104                $message['message_ok'] = _T('abomailmans:liste_supprimee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
105                $message['editable'] = false;
106        }else{
107                sql_updateq("spip_abomailmans",$datas,"id_abomailman = $id_abomailman");
108                $message['message_ok'] = _T('abomailmans:liste_updatee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
109        }
110        $message['redirect'] = parametre_url(self(),'id_abomailman',$id_abomailman);
111    }
112        else{
113                $id_abomailman = sql_insertq("spip_abomailmans",$datas);
114                $message['message_ok'] = _T('abomailmans:liste_creee',array("id"=>$id_abomailman,"titre"=> $datas['titre']));
115                $message['editable'] = false;
116                $message['redirect'] = parametre_url(self(),'id_abomailman',$id_abomailman);
117        }
118
119    return $message;
120}
121
122?>
Note: See TracBrowser for help on using the repository browser.