source: spip-zone/_plugins_/oembed/oembed_administrations.php @ 54489

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

oEmbed peut accepter un endpoint en url relative, implicite au site lui meme : Dans ce cas l'url est passee en absolue pour le site public.
Cela permet d'utiliser une action comme proxy pour un service qui ne sert pas oEmbed mais sa propre soupe :
exemple d'application avec twitter que l'on peut embed directement dans son texte.
Un lien vers un tweet est automatiquement insere dans le texte !

File size: 3.0 KB
Line 
1<?php
2/**
3 * Plugin oEmbed
4 * Licence GPL3
5 *
6 */
7
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10include_spip('inc/meta');
11
12function oembed_upgrade($nom_meta_base_version,$version_cible){
13        $current_version = "0.0";
14        if (    (!isset($GLOBALS['meta'][$nom_meta_base_version]))
15                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
16                include_spip('base/oembed');
17                if ($current_version==0.0){
18                        include_spip('base/create');
19                        include_spip('base/abstract_sql');
20                        creer_base();
21                        // voir
22                        // http://oembed.com/
23                        // http://code.google.com/p/oohembed/source/browse/app/provider/endpoints.json
24                        // https://github.com/starfishmod/jquery-oembed-all/blob/master/jquery.oembed.js
25                        $providers = array(
26                                'http://*.youtube.com/watch*'    =>   'http://www.youtube.com/oembed',
27                                'http://youtu.be/*'              =>   'http://www.youtube.com/oembed',
28                                'http://blip.tv/file/*'          =>   'http://blip.tv/oembed/',
29                                'http://*.vimeo.com/*'           =>   'http://www.vimeo.com/api/oembed.json',
30                                'http://vimeo.com/*'             =>   'http://www.vimeo.com/api/oembed.json',
31                                'http://*.dailymotion.com/*'     =>   'http://www.dailymotion.com/api/oembed',
32                                'http://*.flickr.com/*'          =>   'http://www.flickr.com/services/oembed/',
33                                'http://flickr.com/*'            =>   'http://www.flickr.com/services/oembed/',
34                                'http://soundcloud.com/*'        =>   'http://soundcloud.com/oembed',
35                          'http://*.soundcloud.com/*'      =>   'http://soundcloud.com/oembed',
36                          'http://slideshare.net/*/*'      =>   'http://www.slideshare.net/api/oembed/2',
37                                'http://www.slideshare.net/*/*'  =>   'http://www.slideshare.net/api/oembed/2',
38                                'http://yfrog.com/*'         =>   'http://yfrog.com/api/oembed',
39                                'http://yfrog.*/*'         =>   'http://yfrog.com/api/oembed',
40                                'http://instagr.am/*'            =>   'http://api.instagram.com/oembed',
41                                'http://instagram.com/*'         =>   'http://api.instagram.com/oembed',
42
43                                'https://twitter.com/*/status/*' =>   '?action=oeproxy_twitter',
44                                'http://twitter.com/*/status/*' =>   '?action=oeproxy_twitter',
45                                'https://twitter.com/*/statuses/*' =>   '?action=oeproxy_twitter',
46                                'http://twitter.com/*/statuses/*' =>   '?action=oeproxy_twitter',
47
48                                #'http://yfrog.ru|com.tr|it|fr|co.il|co.uk|com.pl|pl|eu|us)/*'         =>   'http://yfrog.com/api/oembed',
49                                #'https://gist.github.com/*' => 'http://github.com/api/oembed?format=json'
50                        );
51                        foreach ($providers as $scheme => $endpoint) {
52                                sql_insertq('spip_oembed_providers',array('scheme'=>$scheme,'endpoint'=>$endpoint));
53                        }
54                        ecrire_meta($nom_meta_base_version,$current_version=0.1,'non');
55                }
56                if (version_compare($current_version,"0.2","<")){
57                        include_spip('base/abstract_sql');
58                        sql_alter("TABLE spip_documents ADD oembed text NOT NULL DEFAULT ''");
59                        ecrire_meta($nom_meta_base_version,$current_version=0.2,'non');
60                }
61        }
62}
63
64
65function oembed_vider_tables($nom_meta_base_version) {
66        sql_drop_table("spip_oembed_providers");
67        effacer_meta($nom_meta_base_version);
68}
69
70?>
Note: See TracBrowser for help on using the repository browser.