source: spip-zone/_plugins_/fblogin/dev/fblogin_pipelines.php

Last change on this file was 54063, checked in by rastapopoulos@…, 8 years ago

Des broutilles

File size: 3.4 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6/**
7 * Afficher le choix Facebook dans le formulaire d'inscription
8 *
9 * @param <type> $flux
10 * @return <type>
11 */
12function fblogin_recuperer_fond($flux) {
13        if ($flux['args']['fond'] == 'formulaires/inscription'){
14                $fblogin = recuperer_fond('formulaires/inc-inscription-fblogin',$flux['data']['contexte']);
15                // Le premier <ul trouvé
16                $flux['data']['texte'] = preg_replace('/<ul/i', $fblogin.'<ul', $flux['data']['texte'], 1);
17        }
18        return $flux;
19}
20
21/*
22 * Précharge des valeurs si on est dans le cas Facebook
23 */
24function fblogin_formulaire_charger($flux){
25        if ($flux['args']['form'] == 'inscription' and $fb_uid = _request('fb_uid')){
26                // Pré-remplissage des données du profil Facebook
27                $flux['data']['nom_inscription'] = _request('nom_inscription');
28                $flux['data']['mail_inscription'] = _request('mail_inscription');
29                if ($erreur = _request('var_erreur')){
30                        $flux['data']['message_erreur'] = $erreur;
31                }
32                else{
33                        // Un petit message si pas d'erreur
34                        $flux['data']['message_ok'] = _T('fblogin:form_inscription_preremplir');
35                }
36        }
37       
38        return $flux;
39}
40
41/*
42 * Vérifie si on veut s'inscrire avec Facebook et demande alors l'authentification là-bas
43 */
44function fblogin_formulaire_verifier($flux){
45        if ($flux['args']['form'] == 'inscription' and _request('fblogin')){
46                include_spip('inc/fblogin');
47                // On ajoute une erreur à tout hasard, pour pas que ça parte dans le traitement
48                $flux['data']['fblogin'] = true;
49                // On redirige vers l'authentification Facebook
50                // et on récupère des informations au retour
51                $retour = fblogin_url_retour_inscription(self());
52                // Lancer l'identification chez Facebook
53                $erreur = fblogin_demander_authentification($retour);
54                // Si on arrive ici c'est une ERREUR
55                $flux['data']['message_erreur'] = $erreur;
56        }
57       
58        return $flux;
59}
60
61/*
62 * Ajotuer l'UID Facebook à l'auteur nouvellement créé lors de l'inscription
63 */
64function fblogin_formulaire_traiter($flux){
65        if ($flux['args']['form']=='inscription'){
66                $nom = _request('nom_inscription');
67                $mail = _request('mail_inscription');
68                if (function_exists('test_inscription')){
69                        $f = 'test_inscription';
70                }
71                else{
72                        $f = 'test_inscription_dist';
73                }
74                $desc = $f($mode, $mail, $flux['args']['args'][0], $flux['args']['args'][2]);
75               
76                // On vérifie que le mail donné dans le formulaire est le même que celui de l'auteur qui vient d'être créé
77                // et aussi que le mail d'une connexion Facebook existante.
78                // Dans ce cas c'est que le nouvel auteur est bien celui qui est connecté à FB et on lui ajoute son UID
79                if (is_array($desc)
80                        and $mail = $desc['email']
81                        and include_spip('inc/fblogin')
82                        and $infos = fblogin_terminer_authentification()
83                        and is_array($infos)
84                        and $infos['email'] == $mail
85                ){
86                        include_spip('base/abstract_sql');
87                        sql_updateq(
88                                'spip_auteurs', 
89                                array('fb_uid' => $infos['fb_uid']),
90                                'statut="nouveau" AND email=' . sql_quote($mail)
91                        );
92                        $flux['data']['message_ok'] .= '<br/><br/>'._T('fblogin:form_inscription_ok');
93                }
94        }
95        return $flux;
96}
97
98/**
99 * ajouter l'uid soumis lors de la soumission du formulaire CVT editer_auteur
100 * et lors de l'update d'un auteur a l'inscription en 2.1
101 *
102 * @param array $flux
103 * @return array
104 */
105function fblogin_pre_edition($flux){
106        if ($flux['args']['table']=='spip_auteurs') {
107                if (!is_null($fb_uid = _request('fb_uid'))) {
108                        include_spip('inc/fblogin');
109                        $flux['data']['fb_uid'] = $fb_uid;
110                }
111        }
112        return $flux;
113}
114
115
116
117?>
Note: See TracBrowser for help on using the repository browser.