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

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

Allez on repart :

  • dernière librairie PHP de connexion Facebook et on appelle la lib sans l'inclure
  • nécessite Bonux pour pouvoir configurer proprement les identifiants de l'application (plus besoin quand on passera à SPIP 3)
  • intégration pour l'instant dans le formulaire d'inscription de manière propre : on ajoute un bouton (moche pour l'instant) "S'inscrire avec Facebook" => ça part chez eux pour se connecter et acquérir les bonnes autorisations => ça revient sur la page d'où on était parti et ça pré-rempli les champs du formulaire

Le mécanisme d'authentification marche donc bien mais n'est pour l'instant utilisé que dans le formulaire d'inscription.

Reste à :

  • enregistrer l'UID Facebook à l'inscription (dans le pipeline traiter()) quand on en trouve un
  • ajouter la même authentification (les fonctions marchent déjà) mais dans le formulaire de login cette fois
File size: 2.1 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                $flux['data']['fb_uid'] = $fb_uid;
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'] = _request('var_erreur');
31                }
32        }
33       
34        return $flux;
35}
36
37/*
38 * Vérifie si on veut s'inscrire avec Facebook et demande alors l'authentification là-bas
39 */
40function fblogin_formulaire_verifier($flux){
41        if ($flux['args']['form'] == 'inscription' and _request('fblogin')){
42                include_spip('inc/fblogin');
43                // On ajoute une erreur à tout hasard, pour pas que ça parte dans le traitement
44                $flux['data']['fblogin'] = true;
45                // On redirige vers l'authentification Facebook
46                // et on récupère des informations au retour
47                $retour = fblogin_url_retour_inscription(self());
48                // Lancer l'identification chez Facebook
49                $erreur = fblogin_demander_authentification($retour);
50                // Si on arrive ici c'est une ERREUR
51                $flux['data']['message_erreur'] = $erreur;
52        }
53       
54        return $flux;
55}
56
57/**
58 * ajouter l'uid soumis lors de la soumission du formulaire CVT editer_auteur
59 * et lors de l'update d'un auteur a l'inscription en 2.1
60 *
61 * @param array $flux
62 * @return array
63 */
64function fblogin_pre_edition($flux){
65        if ($flux['args']['table']=='spip_auteurs') {
66                if (!is_null($fb_uid = _request('fb_uid'))) {
67                        include_spip('inc/fblogin');
68                        $flux['data']['fb_uid'] = $fb_uid;
69                }
70        }
71        return $flux;
72}
73
74
75
76?>
Note: See TracBrowser for help on using the repository browser.