source: spip-zone/_plugins_/openinviter/openinviter_pipelines.php @ 59377

Last change on this file since 59377 was 50328, checked in by rastapopoulos@…, 9 years ago

Plugin intégrant la librairie OpenInviter? soit toute seule si ça vous amuse, mais surtout en temps que sous-plugin de l'Importateur de contacts.

Il implémente donc ses pipelines pour déclarer son moteur et ses fournisseurs de contacts.

Ainsi que le squelette et la fonction de vérification pour le formulaire d'importation.

Et *oui* : la librairie est bien incluse DANS le plugin en plus, car bien que la licence soit effectivement "GPL", on ne peut télécharger le plugin qu'avec un compte sur leur site, il est donc impossible d'utiliser le système de lib/ de SPIP. Si vous avez une meilleure idée...

File size: 2.1 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6function openinviter_importateur_contacts_moteurs($moteurs){
7        include_spip('OpenInviter/openinviter');
8        include_spip('inc/config');
9       
10        $infos = array(
11                'titre' => 'OpenInviter',
12                'url' => 'http://openinviter.com/',
13                'fournisseurs' => array(),
14        );
15       
16        $inviter = new OpenInviter();
17        $inviter->settings['cookie_path'] = _DIR_TMP;
18        $inviter->settings['transport'] = lire_config('openinviter/transport', 'curl');
19       
20        $plugins = $inviter->getPlugins();
21       
22        // On force la catégorie de certains
23        $force = array(
24                'linkedin' => 'social',
25                'youtube' => 'social',
26        );
27       
28        foreach ($plugins as $listes_plugins) {
29                foreach ($listes_plugins as $nom_plugin => $plugin) {
30                        $nom_fournisseur = strtolower(preg_replace('[\W]', '', $plugin['name']));
31
32                        // Type du fournisseur
33                        $type = $plugin['type'] == 'email' ? 'webmail' : 'social';
34                        if (isset($force[$nom_fournisseur])) {
35                                $type = $force[$nom_fournisseur];
36                        }
37
38                        // Add Provider.
39                        $infos['fournisseurs'][$nom_fournisseur] = array(
40                                'titre' => $plugin['name'],
41                                'type' => $type,
42                                'nom_plugin' => $nom_plugin,
43                        );
44                        $fournisseur = & $infos['fournisseurs'][$nom_fournisseur];
45
46                        // Add domains.
47                        // OpenInviter does this strange thing where it uses both 'allowed_domains' and
48                        // 'detected_domains'.  Not sure what the difference is :P
49                        foreach (array('allowed_domains', 'detected_domains') as $key) {
50                                if (isset($plugin[$key]) && is_array($plugin[$key])) {
51                                        foreach ($plugin[$key] as $regex) {
52                                                $titre_domaine = str_replace(array(')/i', '/('), '', $regex);
53                                                $cle_domaine = strtolower(str_replace(' ', '_', $titre_domaine));
54                                                $fournisseur['domaines'][$cle_domaine] = array(
55                                                        'regex' => $regex,
56                                                        'titre' => $titre_domaine,
57                                                );
58                                        }
59                                }
60                        }
61
62                        // If there's no domains, then this provider can work with all domains.
63                        if (empty($fournisseur['domaines'])) {
64                                $fournisseur['domaines'] = array(
65                                        array(
66                                                'regex' => '/(.*)/',
67                                                'titre' => '*',
68                                        )
69                                );
70                        }
71                }
72        }
73       
74        $moteurs['openinviter'] = $infos;
75       
76        return $moteurs;
77}
78
79?>
Note: See TracBrowser for help on using the repository browser.