aboutsummaryrefslogtreecommitdiffstats
path: root/addon/oembed
diff options
context:
space:
mode:
authorFabio Comuni <fabrix.xm@gmail.com>2011-01-26 16:20:12 +0100
committerFabio Comuni <fabrix.xm@gmail.com>2011-01-26 16:20:12 +0100
commit62fda0a120fe4d068f1380924b5493adb70064ea (patch)
tree041dcaff18f8fb798771f32349e547e19b3abc5b /addon/oembed
parentaf8ab8cb5350a503bb4043e90484a2bece3de7b4 (diff)
downloadvolse-hubzilla-62fda0a120fe4d068f1380924b5493adb70064ea.tar.gz
volse-hubzilla-62fda0a120fe4d068f1380924b5493adb70064ea.tar.bz2
volse-hubzilla-62fda0a120fe4d068f1380924b5493adb70064ea.zip
oembed consumer plugin
Diffstat (limited to 'addon/oembed')
-rw-r--r--addon/oembed/oembed.js51
-rw-r--r--addon/oembed/oembed.php56
-rw-r--r--addon/oembed/oembed.pngbin0 -> 417 bytes
3 files changed, 107 insertions, 0 deletions
diff --git a/addon/oembed/oembed.js b/addon/oembed/oembed.js
new file mode 100644
index 000000000..26541490b
--- /dev/null
+++ b/addon/oembed/oembed.js
@@ -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();
+ });
+
+}
diff --git a/addon/oembed/oembed.php b/addon/oembed/oembed.php
new file mode 100644
index 000000000..55654a543
--- /dev/null
+++ b/addon/oembed/oembed.php
@@ -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">&nbsp;
+ <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>
+ ';
+}
+
+
+
+?> \ No newline at end of file
diff --git a/addon/oembed/oembed.png b/addon/oembed/oembed.png
new file mode 100644
index 000000000..6fc3794bb
--- /dev/null
+++ b/addon/oembed/oembed.png
Binary files differ