diff --git a/addon/oembed/oembed.php b/addon/oembed/oembed.php
index 82183f3cce..4bbd75387a 100644
--- a/addon/oembed/oembed.php
+++ b/addon/oembed/oembed.php
@@ -10,13 +10,11 @@
function oembed_install() {
register_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
register_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
- register_hook('bbcode', 'addon/oembed/oembed.php', 'oembed_hook_bbcode');
}
function oembed_uninstall() {
unregister_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
unregister_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
- unregister_hook('bbcode', 'addon/oembed/oembed.php', 'oembed_hook_bbcode');
}
function oembed_hook_page_header($a, &$b){
@@ -53,49 +51,7 @@ function oembed_hook_jot_tool($a, &$b) {
';
}
-function oembed_replacecb($matches){
- $embedurl=$matches[1];
- $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl);
- $txt = fetch_url($ourl);
- $j = json_decode($txt);
- $ret="";
- switch ($j->type) {
- case "video": {
- if (isset($j->thumbnail_url)) {
- $tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200;
- $th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180;
- $ret = "";
- $ret.= "";
- $ret.= "";
- } else {
- $ret=$j->html;
- }
- $ret.="
";
- }; break;
- case "photo": {
- $ret = "";
- $ret.="
";
- }; break;
- case "link": {
- //$ret = "".$j->title."";
- }; break;
- case "rich": {
- // not so safe..
- $ret = "
".$j->html.""; - }; break; - } - - $embedlink = (isset($j->title))?$j->title:$embedurl; - $ret .= "$embedlink"; - if (isset($j->author_name)) $ret.=" by ".$j->author_name; - if (isset($j->provider_name)) $ret.=" on ".$j->provider_name; - $ret.=""; - return $ret; -} -function oembed_hook_bbcode($a, &$text){ - $text = preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", oembed_replacecb ,$text); -} ?> \ No newline at end of file diff --git a/include/bbcode.php b/include/bbcode.php index 8382cc8044..c17e5dded3 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -1,5 +1,5 @@ ', $Text); + // oembed tag + $Text = oembed_bbcode($Text); + call_hooks('bbcode',$Text); return $Text; diff --git a/include/oembed.php b/include/oembed.php new file mode 100644 index 0000000000..d9bf9f67cf --- /dev/null +++ b/include/oembed.php @@ -0,0 +1,48 @@ +"; + switch ($j->type) { + case "video": { + if (isset($j->thumbnail_url)) { + $tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200; + $th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180; + $ret = ""; + $ret.= ""; + $ret.= ""; + } else { + $ret=$j->html; + } + $ret.="
".$j->html.""; + }; break; + } + + $embedlink = (isset($j->title))?$j->title:$embedurl; + $ret .= "$embedlink"; + if (isset($j->author_name)) $ret.=" by ".$j->author_name; + if (isset($j->provider_name)) $ret.=" on ".$j->provider_name; + $ret.=""; + return $ret; +} + +function oembed_bbcode($text){ + $stopoembed = get_config("system","no_oembed"); + if ($stopoembed == True): + return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", "$1" ,$text); + return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", oembed_replacecb ,$text); +} +?> \ No newline at end of file