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

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

Support pour une redirection sur la balise CONNECTEUR_

`#CONNECTEUR_FACEBOOK{#URL_PAGE{bienvenue}}

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
36        $p->code = "connecteur_lien('$connecteur_type', $redirect)";
37        $p->interdire_scripts = false;
38
39        return $p;
40}
41
42/**
43 * Charger la fonction du service
44 * Utiliser charger_fonction dans une fonction balise provoque des bugs
45 *
46 * @access public
47 */
48function connecteur_lien($source, $redirect = '') {
49        // On appel la fonction du service
50        $action = generer_action_auteur('connection', 'facebook', $redirect, true);
51        $f = charger_fonction($source.'_lien', 'connecteur');
52        return $f($action);
53}
54
55
56/**
57 * Cette fonction va créer un auteur SPIP en fonction d'un tableau
58 * de donnée simple
59 *
60 * ```
61 * array('nom' => 'truc', 'email' => 'truc@machin.be')
62 * ```
63 *
64 * @param mixed $source
65 * @access public
66 */
67function connecteur_creer_auteur($info, $statut = '6forum') {
68
69        // Inscrire l'auteur sur base des informations du connecteur
70        $inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
71        $desc = $inscrire_auteur(
72                $statut,
73                $info['email'],
74                $info['nom']
75        );
76
77        // Envoyer aux pipelines
78        $desc = pipeline('post_connecteur', $desc);
79
80        return $desc;
81}
82
83/**
84 * Une fonction qui va renvoyer les informations complète d'un auteur
85 * sur base de son email
86 *
87 * @param array $info Tableau contenant une clé email
88 * @access public
89 * @return array Les informations complète de l'auteur
90 */
91function connecteur_completer_auteur($info) {
92        // On complète le profil de l'auteur afin de pouvoir le connecteur
93        $info = sql_fetsel(
94                '*',
95                'spip_auteurs',
96                array(
97                        'email='.sql_quote($info['email']),
98                        'statut !='.sql_quote('5poubelle')
99                )
100        );
101
102        return $info;
103}
104
105/**
106 * Connecter un auteur à SPIP
107 *
108 * @param array $auteur_info Tableau contenant une clé email
109 * @access public
110 */
111function connecteur_connecter($auteur_info) {
112        // Récupérer toute les informations de l'auteur
113        $auteur_info = connecteur_completer_auteur($auteur_info);
114        include_spip('inc/auth');
115        auth_loger($auteur_info);
116}
Note: See TracBrowser for help on using the repository browser.