oembed consumer plugin
This commit is contained in:
		
							
								
								
									
										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 | 
		Reference in New Issue
	
	Block a user