source: spip-zone/_plugins_/abomailmans/branches/v1/formulaires/abomailman.php @ 59099

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

Liste de diffusion (newsletter) et liste de discussion (mailing list) ne sont pas les mêmes choses, on les différencie dans le texte...

File size: 3.8 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
8//une seule liste = [(#FORMULAIRE_ABOMAILMAN{1})]
9function formulaires_abomailman_charger_dist($id_abomailman = ""){
10        global $visiteur_session;
11
12        //initialise les variables d'environnement pas défaut
13        $valeurs = array();
14
15        // Si le visiteur est logue au site on utilise ses informations de connexion par défaut
16        $valeurs['email'] = _request('email') ? _request('email') : $visiteur_session['email'];
17        $valeurs['nom'] = _request('nom') ? _request('nom') : $visiteur_session['nom'];
18
19        //si id_abomailman est renseigne, on envoie qu'une liste
20        if(intval($id_abomailman)){
21                $valeurs['id_abomailman'] = $id_abomailman;
22                $ok=sql_getfetsel('id_abomailman','spip_abomailmans','id_abomailman ='.intval($id_abomailman).' AND desactive = 0');
23        }
24        else {
25                $valeurs['listes'] = _request('listes');
26        }
27
28        return $valeurs;
29}
30
31
32function formulaires_abomailman_verifier_dist($id_abomailman = ""){
33
34        //initialise le tableau des erreurs
35        $erreurs = array();
36
37        // recuperation des valeurs du formulaire
38        $nom = _request('nom');
39        $email = _request('email');
40        $listes = _request('listes', true);
41        $abonnement = _request('abonnement');
42        $desabonnement = _request('desabonnement');
43
44        // Faire une fonction de verif sur le mail pour validite
45
46        if($email == ''){
47                $erreurs['email'] = _T("abomailmans:email_oublie");
48        }
49        else{
50                include_spip('inc/filtres'); # pour email_valide()
51                if (!email_valide($email)){
52                        $erreurs['email'] = _T("form_email_non_valide");
53                }
54                else{
55                        spip_log("Email = $email;","abomailmans");
56                        //TODO
57                        // stocker l'email dans un fichier ou la session, histoire de ne pas se presenter 2 fois
58                }
59        }
60
61        if(empty($listes)){
62                $erreurs['listes'] = _T("abomailmans:choisir_liste");
63        }
64
65    //message d'erreur generalise
66    if (count($erreurs)) {
67        $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
68    }
69
70    return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera ressoumis
71}
72
73function formulaires_abomailman_traiter_dist($id_abomailman = ""){
74        // Pour l'envoi de l'email
75        include_spip('inc/abomailmans');
76
77
78        $nom = _request('nom');
79        $email = _request('email');
80        $listes = _request('listes', true);
81        $abonnement = _request('abonnement');
82        $desabonnement = _request('desabonnement');
83
84        $message = null;
85
86        $message_listes = "<ul>";
87
88        $nb_listes = 0;
89        foreach($listes as $id_abomailman) {
90                $nb_listes++;
91
92                //on initialise l'envoi
93                // on traite chaque liste via une fonction reutilisable ailleurs
94                $traiter=abomailman_traiter_abonnement($id_abomailman,$abonnement);
95                $titre = $traiter[0];
96                $proprio_email=$traiter[1];
97                $liste_email=$traiter[2];
98                $sujet=$traiter[3];
99                $body= array( 
100                        'texte' => $traiter[4], 
101                        'nom_envoyeur' => $nom 
102                ); 
103                $headers=$traiter[5];
104
105                // si on veut ajouter un mail de notification ou de test
106                /*
107                $liste_email = array(
108                        $liste_email,"verif@exemple.com"
109                );
110                */
111                if (abomailman_mail($nom, $email, $proprio_email,$liste_email, $sujet, $body,'',$headers)){
112                        $message_listes  .= "<li><strong>$titre</strong></li>";
113                }else{
114                        $message_listes .= "<li><strong>". _T('pass_erreur_probleme_technique')."</strong></li>";
115                        $probleme=true;
116                }
117        }
118
119        $message_listes .= "</ul><br class='nettoyeur' />";
120
121        if($abonnement){
122                if($nb_listes>1){
123                        $message .= _T("abomailmans:message_confirmation_a");
124                }else{
125                        $message .= _T("abomailmans:message_confirmation_unique_a");
126                }
127        } else{
128                if($nb_listes>1){
129                        $message .= _T("abomailmans:message_confirmation_d");
130                }else{
131                        $message .= _T("abomailmans:message_confirmation_unique_d");
132                }
133        }
134
135        $message .= $message_listes;
136        $message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
137
138        if ($probleme==false)
139                return $message;
140        else
141                return $message_listes;
142}
143?>
Note: See TracBrowser for help on using the repository browser.