source: spip-zone/_plugins_/spip-listes/spip-listes_1_9_3/formulaires/spip_listes_inscription.php @ 47530

Last change on this file since 47530 was 47530, checked in by paladin@…, 10 years ago

documentation code

File size: 3.8 KB
Line 
1<?php
2/**
3 * Formulaire d'inscription
4 *
5 * @since SPIP 2.0
6 * @see http://www.spip.net/fr_article3796.html
7 * @see formulaires/spip_listes_inscription.html
8 *              qui est le squelette de construction
9 *              utilisé ici
10 * @package spiplistes
11 */
12 // $LastChangedRevision: 47063 $
13 // $LastChangedBy: paladin@quesaco.org $
14 // $LastChangedDate: 2011-04-25 18:46:50 +0200 (Lun 25 avr 2011) $
15       
16include_spip('inc/acces');
17include_spip('inc/spiplistes_api');
18
19function formulaires_spip_listes_inscription_charger_dist ($id_liste='')
20{
21        $valeurs = array(
22                'email' => '',
23                'id_liste' => $id_liste
24        );
25       
26        return $valeurs;
27}
28
29function formulaires_spip_listes_inscription_verifier_dist ($id_liste='')
30{
31        $erreurs = array();
32       
33        // verifier que les champs obligatoires sont bien la :
34        foreach(array('email') as $obligatoire) {
35                if (!_request($obligatoire))
36                {
37                        $erreurs[$obligatoire] = _T('spiplistes:champ_obligatoire');
38                }
39        }
40       
41        if (!in_array(_request('format_abo'), array('html','texte')))
42        {
43                $erreurs['format'] = 'format inconnu';
44        }
45       
46        $listes = _request('listes');
47       
48        if (is_array($listes))
49        {
50                foreach($listes as $liste)
51                {
52                        $id_liste = intval($liste);
53                        if(!$id_liste) 
54                        {
55                                $erreurs['liste'] = _T('spiplistes:liste_inconnue');
56                        }
57                }
58        }
59
60        // verifier que si un email a ete saisi, il est bien valide :
61        include_spip('inc/filtres');
62        $email = _request('email');
63        if ($email && !email_valide($email)) 
64        {
65                $erreurs['email'] = _T('spiplistes:cet_email_pas_valide');
66        }
67       
68        //// Verifier si le mail est deja connu
69        //if (email_valide(_request('email'))) {
70        //      if (sql_getfetsel('id_auteur','spip_auteurs',"id_auteur !='".intval($id_auteur)."' AND email = '$email'")) {
71        //              $erreurs['email'] = _T('spiplistes:cet_email_deja_enregistre');
72        //      }
73        //}
74
75        if (count($erreurs)) {
76                $erreurs['message_erreur'] = _T('spiplistes:saisie_erreurs');
77        }
78       
79    return ($erreurs); // si c'est vide, traiter sera appele, sinon le formulaire sera re-soumis
80}
81
82
83function formulaires_spip_listes_inscription_traiter_dist ($id_liste='') {
84       
85        // enregistre dans spip_auteurs, spip_auteurs_elargis, spip_auteurs_listes                     
86                       
87        $val['email'] = _request('email');
88        $val['nom'] = _request('email');
89        $alea_actuel = creer_uniqid();
90        $alea_futur = creer_uniqid();
91        $val['alea_actuel'] = $alea_actuel;
92        $val['alea_futur'] = $alea_futur;
93        $val['low_sec'] = '';
94        $val['statut'] = 'aconfirmer';
95       
96        $format = _request('format_abo');
97        $listes = _request('listes');
98
99        // si l'auteur existe deja,
100        $auteur = spiplistes_auteurs_auteur_select('id_auteur,statut,lang'
101                                                                                           , 'email='.sql_quote($val['email']));
102        if ($auteur)
103        {
104                $id_auteur = $auteur['id_auteur'];
105                // reactiver le compte si necessaire
106                if ($auteur['statut'] == '5poubelle')
107                {
108                        spiplistes_auteurs_auteur_statut_modifier ($id_auteur, 'aconfirmer');
109                }
110                spiplistes_debug_log ('inscription auteur #'.$id_auteur.' email:'.$val['email']);
111        }
112        else
113        {
114                // creer le compte abonne'
115                if ($id_auteur = spiplistes_auteurs_auteur_insertq ($val))
116                {
117                        sql_insertq(
118                                        'spip_auteurs_elargis'
119                                  , array('id_auteur'=>$id_auteur
120                                                 ,'spip_listes_format'=>$format
121                                                 )
122                                  );
123                }
124                spiplistes_debug_log ('NEW inscription email:'.$val['email']);
125                $lang = $GLOBALS['meta']['langue_site'];
126        }
127       
128        if ($listes) {
129                foreach($listes as $liste) {
130                        sql_insertq ('spip_auteurs_listes'
131                                        , array('id_auteur'=>$id_auteur
132                                                        ,'id_liste'=>$liste
133                                                        )
134                                        );
135                }
136        }
137       
138        // envoyer mail de confirmation
139        if (
140                spiplistes_envoyer_mail (
141                        $val['email']
142                        , _T('spiplistes:confirmation_inscription')
143                        , _T('spiplistes:inscription_reponses_s'
144                                 , array('s' => spiplistes_nom_site_texte ($lang))
145                                 )
146           )
147        ) {
148                $contexte = array('message_ok'=>_T('spiplistes:demande_ok'),'editable' => false,);
149        }
150        else {
151                $contexte = array('message_ok'=>_T('spiplistes:demande_ko'),'editable' => false,);
152        }
153       
154        return ($contexte);
155}
156
Note: See TracBrowser for help on using the repository browser.