oembed consumer plugin
This commit is contained in:
parent
af8ab8cb53
commit
62fda0a120
3 changed files with 107 additions and 0 deletions
51
addon/oembed/oembed.js
Normal file
51
addon/oembed/oembed.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
function oembed(){
|
||||
$("#oembed").toggleClass('hide');
|
||||
}
|
||||
|
||||
function oembed_do(){
|
||||
embedurl = $('#oembed_url').attr('value');
|
||||
var url = 'http://oohembed.com/oohembed/?url='+escape( embedurl )+"&callback=?";
|
||||
|
||||
$.getJSON(url, function(data) {
|
||||
var ret="";
|
||||
switch(data.type){
|
||||
case "video": {
|
||||
if (data.thumbnail_url){
|
||||
tw = 200; if (data.thumbnail_width) tw=data.thumbnail_width;
|
||||
th = 180; if (data.thumbnail_height) tw=data.thumbnail_height;
|
||||
ret = "<a href='"+embedurl+"'>";
|
||||
// tiny mce bbcode plugin not support image size......
|
||||
ret += "<img width='"+tw+"' height='"+th+"' src='"+data.thumbnail_url+"'></a>";
|
||||
} else {
|
||||
ret = data.html;
|
||||
}
|
||||
}; break;
|
||||
case "photo": {
|
||||
// tiny mce bbcode plugin not support image size......
|
||||
ret = "<img width='"+data.width+"' height='"+data.height+"' src='"+data.url+"'>";
|
||||
}; break;
|
||||
case "link": {
|
||||
ret = "<a href='"+embedurl+"'>"+data.title+"</a>";
|
||||
}; break;
|
||||
case "rich": {
|
||||
ret = data.html; // not so safe... http://www.oembed.com/ : "Consumers may wish to load the HTML in an off-domain iframe to avoid XSS"
|
||||
}; break;
|
||||
default: {
|
||||
alert("Error retriving data!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
var embedlink = embedurl;
|
||||
if (data.title) embedlink = data.title
|
||||
ret+="<br><a href='"+embedurl+"'>"+embedlink+"</a>";
|
||||
if (data.author_name) {
|
||||
ret+=" by "+data.author_name;
|
||||
}
|
||||
if (data.provider_name) {
|
||||
ret+=" on "+data.provider_name;
|
||||
}
|
||||
tinyMCE.execCommand('mceInsertRawHTML',false,ret);
|
||||
oembed();
|
||||
});
|
||||
|
||||
}
|
56
addon/oembed/oembed.php
Normal file
56
addon/oembed/oembed.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
/**
|
||||
* oembed plugin
|
||||
*
|
||||
* oEmbed is a format for allowing an embedded representation of a URL on third party sites
|
||||
* http://www.oembed.com/
|
||||
*
|
||||
*/
|
||||
|
||||
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');
|
||||
}
|
||||
|
||||
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');
|
||||
}
|
||||
|
||||
function oembed_hook_page_header($a, &$b){
|
||||
$b .= '<script src="addon/oembed/oembed.js"></script>
|
||||
<style>#oembed.hide { display: none }
|
||||
#oembed {
|
||||
display:block; position: absolute; width: 300px; height:200px;
|
||||
background-color:#fff; color: #000;
|
||||
border:2px solid #8888FF; padding: 1em;
|
||||
top: 200px; left: 400px; z-index:2000;
|
||||
}
|
||||
#oembed_url { width: 100%; margin-bottom:3px;}
|
||||
</style>';
|
||||
|
||||
$b .= '
|
||||
<div id="oembed" class="hide"><input id="oembed_url">
|
||||
<input type="button" value="Embed" onclick="oembed_do()" style="float:left;">
|
||||
<a onclick="oembed(); return false;" style="float:right;"><img onmouseout="imgdull(this);" onmouseover="imgbright(this);" class="wall-item-delete-icon" src="images/b_drophide.gif" style="width: 16px; height: 16px;"></a>
|
||||
<p style="clear:both">Paste a link from 5min.com, Amazon Product Image, blip.tv, Clikthrough, CollegeHumor Video,
|
||||
Daily Show with Jon Stewart, Dailymotion, dotSUB.com, Flickr Photos, Funny or Die Video,
|
||||
Google Video, Hulu, Kinomap, LiveJournal UserPic, Metacafe, National Film Board of Canada,
|
||||
Phodroid Photos, Photobucket, Qik Video, Revision3, Scribd, SlideShare, TwitPic, Twitter Status,
|
||||
Viddler Video, Vimeo, Wikipedia, Wordpress.com, XKCD Comic, YFrog, YouTube</p>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
|
||||
function oembed_hook_jot_tool($a, &$b) {
|
||||
$b .= '
|
||||
<div class="tool-wrapper" style="display: $visitor;" >
|
||||
<img class="tool-link" src="addon/oembed/oembed.png" alt="Embed" title="Embed" onclick="oembed();" />
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
BIN
addon/oembed/oembed.png
Normal file
BIN
addon/oembed/oembed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 417 B |
Loading…
Reference in a new issue