source: spip-zone/_plugins_/connecteur/trunk/connecteur_fonctions.php @ 96251

Last change on this file since 96251 was 96251, checked in by p@…, 5 years ago

Pétouille

File size: 2.6 KB
Line 
1<?php
2/**
3 * Fonctions utiles au plugin Connection
4 *
5 * @plugin     Connection
6 * @copyright  2016
7 * @author     Phenix
8 * @licence    GNU/GPL
9 * @package    SPIP\Connecteur\Fonctions
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16/**
17 * Balise des connecteurs
18 *
19 * Active le lien de connection spécifique à un connecteur
20 *
21 * ```
22 * #CONNECTEUR_FACEBOOK
23 * ```
24 * Cette balise appel une fonction du dossier connecteur: `connecteur_facebook_lien`
25 *
26 * @param mixed $p
27 * @access public
28 */
29function balise_CONNECTEUR__dist($p) {
30
31        // Récupérer le type de connecteur
32        // Le substr supprime la partie "CONNECTEUR_" pour ne garder que la source
33        $connecteur_type = strtolower(substr($p->nom_champ, 11));
34        $redirect = interprete_argument_balise(1, $p);
35        $p->code = "connecteur_lien('$connecteur_type', $redirect)";
36        $p->interdire_scripts = false;
37
38        return $p;
39}
40
41/**
42 * Charger la fonction du service
43 * Utiliser charger_fonction dans une fonction balise provoque des bugs
44 *
45 * @access public
46 */
47function connecteur_lien($source, $redirect = '') {
48        // On appel la fonction du service
49        $action = generer_action_auteur('connexion', 'facebook', $redirect, true);
50        $f = charger_fonction($source.'_lien', 'connecteur');
51        return $f($action);
52}
53
54/**
55 * Cette fonction va créer un auteur SPIP en fonction d'un tableau
56 * de donnée simple
57 *
58 * ```
59 * array('nom' => 'truc', 'email' => 'truc@machin.be')
60 * ```
61 *
62 * @param mixed $source
63 * @access public
64 */
65function connecteur_creer_auteur($info, $statut = '6forum') {
66
67        // Inscrire l'auteur sur base des informations du connecteur
68        $inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
69        $desc = $inscrire_auteur(
70                $statut,
71                $info['email'],
72                $info['nom']
73        );
74
75        // Envoyer aux pipelines
76        $desc = pipeline('post_connecteur', $desc);
77
78        return $desc;
79}
80
81/**
82 * Une fonction qui va renvoyer les informations complète d'un auteur
83 * sur base de son email
84 *
85 * @param array $info Tableau contenant une clé email
86 * @access public
87 * @return array Les informations complète de l'auteur
88 */
89function connecteur_completer_auteur($info) {
90        // On complète le profil de l'auteur afin de pouvoir le connecteur
91        $info = sql_fetsel(
92                '*',
93                'spip_auteurs',
94                array(
95                        'email='.sql_quote($info['email']),
96                        'statut !='.sql_quote('5poubelle')
97                )
98        );
99
100        return $info;
101}
102
103/**
104 * Connecter un auteur à SPIP
105 *
106 * @param array $auteur_info Tableau contenant une clé email
107 * @access public
108 */
109function connecteur_connecter($auteur_info) {
110        // Récupérer toute les informations de l'auteur
111        $auteur_info = connecteur_completer_auteur($auteur_info);
112        include_spip('inc/auth');
113        auth_loger($auteur_info);
114}
Note: See TracBrowser for help on using the repository browser.