1 | <?php |
---|
2 | |
---|
3 | // Sécurité |
---|
4 | if (!defined('_ECRIRE_INC_VERSION')) return; |
---|
5 | |
---|
6 | function parrainage_formulaire_charger($flux){ |
---|
7 | if ($flux['args']['form'] == 'inscription'){ |
---|
8 | if ($code_invitation = _request('invitation')) |
---|
9 | $flux['data']['code_invitation'] = $code_invitation; |
---|
10 | else |
---|
11 | $flux['data']['code_invitation'] = ''; |
---|
12 | } |
---|
13 | |
---|
14 | return $flux; |
---|
15 | } |
---|
16 | |
---|
17 | function parrainage_recuperer_fond($flux){ |
---|
18 | if ($flux['args']['fond'] == 'formulaires/inscription'){ |
---|
19 | include_spip('inc/config'); |
---|
20 | $obligatoire = lire_config('parrainage/invitation_obligatoire','') ? 'oui' : 'non'; |
---|
21 | $saisie = recuperer_fond( |
---|
22 | 'saisies/_base', |
---|
23 | array($flux['args']['contexte']['code_invitation'], |
---|
24 | 'type_saisie' => 'input', |
---|
25 | 'nom' => 'code_invitation', |
---|
26 | 'valeur' => $flux['args']['contexte']['code_invitation'], |
---|
27 | 'erreurs' => $flux['args']['contexte']['erreurs'], |
---|
28 | 'label' => _T('parrainage:inscription_code_invitation_label'), |
---|
29 | 'obligatoire' => $obligatoire |
---|
30 | ) |
---|
31 | ); |
---|
32 | $flux['data']['texte'] = preg_replace("%<li class='saisie_mail_inscription.*?</li>%is", '$0'.$saisie, $flux['data']['texte']); |
---|
33 | } |
---|
34 | |
---|
35 | return $flux; |
---|
36 | } |
---|
37 | |
---|
38 | function parrainage_formulaire_verifier($flux){ |
---|
39 | if ($flux['args']['form'] == 'inscription'){ |
---|
40 | include_spip('inc/config'); |
---|
41 | $code_invitation = _request('code_invitation'); |
---|
42 | // Si l'invitation est obligatoire |
---|
43 | if (lire_config('parrainage/invitation_obligatoire','') and !$code_invitation){ |
---|
44 | $flux['data']['code_invitation'] = _T('parrainage:erreur_invitation_obligatoire'); |
---|
45 | } |
---|
46 | // Si le code ne correspond pas à l'email donné |
---|
47 | elseif (!$email = sql_getfetsel('email', 'spip_filleuls', 'code_invitation = '.sql_quote($code_invitation)) |
---|
48 | or $email != _request('mail_inscription') |
---|
49 | ){ |
---|
50 | $flux['data']['code_invitation'] = _T('parrainage:erreur_invitation_invalide'); |
---|
51 | } |
---|
52 | } |
---|
53 | |
---|
54 | return $flux; |
---|
55 | } |
---|
56 | |
---|
57 | function parrainage_formulaire_traiter($flux){ |
---|
58 | if ($flux['args']['form'] == 'inscription' and $code_invitation = _request('code_invitation')){ |
---|
59 | // On doit d'abord chercher l'id_auteur qui vient d'être créé |
---|
60 | $email = _request('mail_inscription'); |
---|
61 | $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = '.sql_quote($email)); |
---|
62 | |
---|
63 | // Si l'auteur est bien là, on fait le lien entre le nouvel inscrit et le filleul |
---|
64 | if ($id_auteur > 0) |
---|
65 | sql_updateq( |
---|
66 | 'spip_filleuls', |
---|
67 | array( |
---|
68 | 'statut' => 'filleul', |
---|
69 | 'id_auteur' => $id_auteur |
---|
70 | ), |
---|
71 | array( |
---|
72 | 'code_invitation = '.sql_quote($code_invitation), |
---|
73 | 'email = '.sql_quote(_request('mail_inscription')) |
---|
74 | ) |
---|
75 | ); |
---|
76 | } |
---|
77 | |
---|
78 | return $flux; |
---|
79 | } |
---|
80 | |
---|
81 | ?> |
---|