3 if (!defined("_ECRIRE_INC_VERSION")) return;
5 include_spip('base/abstract_sql');
7 // chargement des valeurs par defaut des champs du formulaire
8 //une seule liste = [(#FORMULAIRE_ABOMAILMAN{1})]
9 function formulaires_abomailman_charger_dist($id_abomailman = ""){
11 //initialise les variables d'environnement pas défaut
14 // Si le visiteur est logue au site on utilise ses informations de connexion par défaut
15 include_spip('inc/session');
16 $valeurs['email'] = _request('email') ?
_request('email') : session_get('email');
17 $valeurs['nom'] = _request('nom') ?
_request('nom') : session_get('nom');
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');
25 $valeurs['listes'] = _request('listes');
26 // on verifie s'il existe des listes disponibles
27 $ok=sql_count(sql_select('id_abomailman','spip_abomailmans'));
29 $valeurs['nobot'] = _request('nobot');
35 function formulaires_abomailman_verifier_dist($id_abomailman = ""){
37 //initialise le tableau des erreurs
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');
47 // Faire une fonction de verif sur le mail pour validite
50 $erreurs['email'] = _T("abomailmans:email_oublie");
53 include_spip('inc/filtres'); # pour email_valide()
54 if (!email_valide($email)){
55 $erreurs['email'] = _T("form_email_non_valide");
58 spip_log("Email = $email;","abomailmans");
60 // stocker l'email dans un fichier ou la session, histoire de ne pas se presenter 2 fois
65 $erreurs['listes'] = _T("abomailmans:choisir_liste");
68 //message d'erreur generalise
69 if (count($erreurs)) {
70 $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
73 return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera ressoumis
76 function formulaires_abomailman_traiter_dist($id_abomailman = ""){
77 // Pour l'envoi de l'email
78 include_spip('inc/abomailmans');
81 // si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
82 if (strlen(_request('nobot'))){
83 return array('message_erreur'=>_T('abomailmans:erreur_nobot'));
86 $nom = _request('nom');
87 $email = _request('email');
88 $listes = _request('listes', true);
89 $abonnement = _request('abonnement');
90 $desabonnement = _request('desabonnement');
94 $message_listes = "<ul>";
97 foreach($listes as $id_abomailman) {
100 //on initialise l'envoi
101 // on traite chaque liste via une fonction reutilisable ailleurs
102 $traiter=abomailman_traiter_abonnement($id_abomailman,$abonnement);
103 $titre = $traiter[0];
104 $proprio_email=$traiter[1];
105 $liste_email=$traiter[2];
108 'texte' => $traiter[4],
109 'nom_envoyeur' => $nom
111 $headers=$traiter[5];
113 // si on veut ajouter un mail de notification ou de test
115 $liste_email = array(
116 $liste_email,"verif@exemple.com"
119 if (abomailman_mail($nom, $email, $proprio_email,$liste_email, $sujet, $body,'',$headers)){
120 $message_listes .= "<li><strong>$titre</strong></li>";
122 $message_listes .= "<li><strong>". _T('pass_erreur_probleme_technique')."</strong></li>";
127 $message_listes .= "</ul><br class='nettoyeur' />";
131 $message .= _T("abomailmans:message_confirmation_a");
133 $message .= _T("abomailmans:message_confirmation_unique_a");
137 $message .= _T("abomailmans:message_confirmation_d");
139 $message .= _T("abomailmans:message_confirmation_unique_d");
143 $message .= $message_listes;
144 $message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
146 if ($probleme==false)
149 return $message_listes;