source: spip-zone/_plugins_/abomailmans/formulaires/abomailman.php @ 47175

Last change on this file since 47175 was 47175, checked in by olivier.durif@…, 8 years ago

nom de l'expéditeur du mail d'inscription au nom de l'abonné

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