source: spip-zone/_plugins_/connecteur/trunk/inc/token.php @ 98160

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

Prévenir des problèmes de nom de class type "PHP_Incomplete_Class_Name"

File size: 2.1 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7/**
8 * API de gestion des TOKEN
9 *
10 * @access public
11 */
12
13
14/**
15 * Enregistrer un token d'auteur
16 *
17 * @param int $id_auteur
18 * @param sting $type Type du token (ex: facebook)
19 * @param mixed $token le token sous forme brut
20 * Cette variable peut également être un tableau de token type_token => token
21 * @access public
22 */
23function connecteur_save_token($id_auteur, $type, $token) {
24
25        // dans le cas d'un tableau de token, on les enregistre tous
26        if (is_array($token)) {
27                foreach ($token as $tk_type => $tk) {
28                        connecteur_save_token($id_auteur, $tk_type, $tk);
29                }
30        } else {
31                // Est-ce qu'il y a déjà un token ?
32                $update = connecteur_get_token($id_auteur, $type);
33                if (!empty($update)) {
34                        connecteur_update_token($id_auteur, $type, $token);
35                } else {
36                        // Sérializer le token
37                        $token = serialize($token);
38                        sql_insertq(
39                                'spip_connecteur',
40                                array(
41                                        'id_auteur' => $id_auteur,
42                                        'type' => $type,
43                                        'token' => $token
44                                )
45                        );
46                }
47        }
48}
49
50/**
51 * Récupérer un token précis
52 *
53 * @param int $id_auteur
54 * @param string $type
55 * @access public
56 */
57function connecteur_get_token($id_auteur, $type) {
58
59        // Afin de prévenir des problèmes de nom de class type "__PHP_Incomplete_Class_Name"
60        // On va charger l'éventuel fichier référencé dans la config du plugin
61        $connecteur_config = charger_fonction($type.'_config', 'connecteur');
62        $config = $connecteur_config();
63
64        if (isset($config['charger_fichier'])) {
65                include_spip($config['charger_fichier']);
66        }
67
68        // Récupérer le token
69        $token = sql_getfetsel(
70                'token',
71                'spip_connecteur',
72                array(
73                        'id_auteur='.intval($id_auteur),
74                        'type='.sql_quote($type)
75                )
76        );
77
78        return unserialize($token);
79}
80
81/**
82 * Mettre à jour un token
83 *
84 * @param int $id_auteur
85 * @param string $type
86 * @param mixed $token
87 * @access public
88 */
89function connecteur_update_token($id_auteur, $type, $token) {
90        $token = serialize($token);
91        sql_updateq(
92                'spip_connecteur',
93                array('token' => $token),
94                array(
95                        'id_auteur='.intval($id_auteur),
96                        'type='.sql_quote($type)
97                )
98        );
99}
Note: See TracBrowser for help on using the repository browser.