[pLog-svn] r7098 - in plog/branches/lifetype-1.2/js/tinymce/plugins: . insertvideo insertvideo/css insertvideo/img insertvideo/langs

Mark Wu markplace at gmail.com
Tue Dec 21 22:59:11 EST 2010


I'll take a look. But I don't think it is a good idea to include all video
sites, it is too complex to maintain. A better way maybe use media plugin to
deal with the reset of them.

2010/12/22 Jon Daley <plogworld at jon.limedaley.com>

> Hi Mark - nice to have you back.  :)
>
> Did you see the items in mantis related to the insertvideo plugin?  A user
> posted ~150 video sites to include in this plugin, and it'd be nice to have
> those added if it isn't too much trouble.  People complain about not having
> every last video site in the world included in this plugin.
>
>
> On Tue, 21 Dec 2010, mark at devel.lifetype.net wrote:
>
>  Author: mark
>> Date: 2010-12-21 12:37:19 -0500 (Tue, 21 Dec 2010)
>> New Revision: 7098
>>
>> Added:
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/README.txt
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/content.css
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/flash.css
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin.js
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin_src.js
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/functions.js
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/bolt.png
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dailymotion.png
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dalealplay.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/goear.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/grouper.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/gvideo.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/ifilm.png
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/metacafe.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/spacer.gif
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/vimeo.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/youtube.png
>>
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/zippyvideos.png
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en.js
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en_dlg.js
>>  plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/videoinput.html
>> Log:
>> InsertVideo works now, I just refactored the plugin (almost rewrite) based
>> on the tecnique I used in InsertResource plugin. There is one todo item:
>> functions.js must rewrite to its own namespace.
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/README.txt
>> ===================================================================
>> --- plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/README.txt
>>                              (rev 0)
>> +++ plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/README.txt
>>      2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,18 @@
>> +InsertVideo:
>> +
>> +Author: Oscar Renalias / LifeType (copied from the flash plugin)
>> +
>> +A plugin for tinymce that allows to insert videos from youtube and
>> +google video without breaking the xhhtml compliancy. The code has been
>> +shamelessly ripped from the tinymce 'flash' plugin but it works.
>> +
>> +
>> +
>> +History:
>> +
>> +10/2006: Created
>> +
>> +early 2007: various bug fixes/typos
>> +
>> +06/2007: DailyMotion support and Localized for other
>> +         languages by Gabriel Rousseau
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/content.css
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/content.css
>>                         (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/content.css
>> 2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,56 @@
>> +.ltVideoYouTube {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/youtube.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +}
>> +.ltVideoVimeo {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/vimeo.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +}
>> +.ltVideoGoogleVideo {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/gvideo.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +}
>> +.ltVideoMetacafe {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/metacafe.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +       }
>> +.ltVideoIfilm {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/ifilm.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +       }
>> +.ltVideoGoear {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/goear.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +       }
>> +.ltVideoGrouper {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/grouper.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +       }
>> +.ltVideoDailymot {
>> +       border: 1px dotted #cc0000;
>> +       background-image: url('../img/dailymotion.png');
>> +       background-position: center;
>> +       background-repeat: no-repeat;
>> +       background-color: #ffffcc;
>> +       }
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/flash.css
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/flash.css
>>                         (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/css/flash.css
>> 2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,11 @@
>> +.panel_wrapper div.current {
>> +       height: 100px;
>> +}
>> +
>> +#width, #height {
>> +       width: 50px;
>> +}
>> +
>> +#file {
>> +       width: 250px;
>> +}
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin.js
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin.js
>>                        (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin.js
>>  2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,8 @@
>> +
>> +(function(){tinymce.PluginManager.requireLangPack('insertvideo');tinymce.create('tinymce.plugins.InsertVideoPlugin',{init:function(ed,url){var
>> t=this;t.ed=ed;t.url=url;ed.onBeforeSetContent.add(function(ed,o){o.content=t._insertToEditor(t,o.content);});ed.onPostProcess.add(function(ed,o){if(o.set){o.content=t._insertToEditor(t,o.content);}
>>
>> +if(o.get){o.content=t._getFromEditor(t,o.content);}});ed.addCommand('mceInsertVideo',function(){ed.windowManager.open({file:url+'/videoinput.html',width:500,height:300,inline:1},{plugin_url:url});});ed.addButton('insertvideo',{title:'insertvideo.desc',cmd:'mceInsertVideo',image:url+'/img/youtube.png'});ed.onInit.add(function(){if(ed.settings.content_css!==false)
>> +ed.dom.loadCSS(url+"/css/content.css");});},getInfo:function(){return{longname:'Insert
>> Video',author:'LifeType Team',authorurl:'http://www.lifetype.net
>> ',infourl:'http://www.lifetype.net',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertToEditor:function(t,content){cdom=t.ed.dom.create('div');t.ed.dom.setHTML(cdom,content);elems=t.ed.dom.select('object[data]',cdom);tinymce.each(elems,function(e){src=e.data;cls=t._getVideoType(src);if(src&&cls){height=e.height;width=e.width;imgHTML=t._getVideoImgHTML(src,height,width,cls);t.ed.dom.setOuterHTML(e,imgHTML);}});content=cdom.innerHTML;t.ed.dom.remove(cdom);return
>> content;},_getFromEditor:function(t,content){cdom=t.ed.dom.create('div');t.ed.dom.setHTML(cdom,content);elems=t.ed.dom.select('img[class^=ltVideo]',cdom);tinymce.each(elems,function(e){cls=t._isValidVideoType(e.className);src=e.alt;if(src&&cls){height=e.height;width=e.width;embedHTML=t._getVideoFlashHTML(src,height,width,cls);t.ed.dom.setOuterHTML(e,embed
>>
> HT
>
>> ML);}});content=cdom.innerHTML;t.ed.dom.remove(cdom);return
>> content;},_getVideoType:function(url)
>> +{var
>> sites={GoogleVideo:{regexp:/^http:\/\/video\.google\.com\//,cls:'ltVideoGoogleVideo'},YouTube:{regexp:/^http:\/\/.{2,3}\.youtube\.com\//,cls:'ltVideoYouTube'},Metacafe:{regexp:/^http:\/\/www\.metacafe\.com\//,cls:'ltVideoMetacafe'},Ifilm:{regexp:/^http:\/\/www\.ifilm\.com\//,cls:'ltVideoIfilm'},VideoGoear:{regexp:/^http:\/\/www\.
>> goear.com\//,cls:'ltVideoGoear'},Grouper:{regexp:/^http:\/\/www\.grouper\.com\//,cls:'ltVideoGrouper'},DailyMotion:{regexp:/^http:\/\/www\.dailymotion\.com\//,cls:'ltVideoDailymot'},Vimeo:{regexp:/^http:\/\/vimeo\.com\//,cls:'ltVideoVimeo'}};var
>> cls='';for(site in
>> sites){if(url.match(sites[site].regexp)){cls=sites[site].cls;break;}}
>> +return(cls);},_isValidVideoType:function(cls){result=cls.match(/^ltVideo(GoogleVideo|YouTube|Metacafe|Ifilm|Goear|Grouper|Dailymot|Vimeo)/);return(result?'ltVideo'+result[1]:false);},_getVideoImgHTML:function(src,height,width,cls){html='<img
>> width="'+width+'" height="'+height+'"'+'
>> src="'+this.url+'/img/spacer.gif'+'" title="'+src+'"'+' alt="'+src+'"
>> class="'+cls+'" />';return
>> html;},_getVideoFlashHTML:function(url,height,width,cls)
>> +{html='<object type="application/x-shockwave-flash" width="'+width+'"
>> height="'+height+'" data="'+url+'" class="'+cls+'">'+'<param name="movie"
>> value="'+url+'" />'+'<param name="wmode" value="transparent" />'+'<param
>> name="allowScriptAccess" value="sameDomain" />'+'<param name="quality"
>> value="best" />'+'<param name="bgcolor" value="#ffffff"
>> />';if(cls=='ltVideoGoear'){html+='<param name="FlashVars"
>> value="'+url.substring(43,url.length)+'" />';}else{html+='<param
>> name="FlashVars" value="playerMode=embedded" />';}
>> +html+='</object>';return
>> html;}});tinymce.PluginManager.add('insertvideo',tinymce.plugins.InsertVideoPlugin);})();
>> \ No newline at end of file
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin_src.js
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin_src.js
>>                              (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/editor_plugin_src.js
>>      2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,170 @@
>> +/**
>> + * editor_plugin_src.js
>> + *
>> + * Copyright 2010, Lifetype Team, http://www.lifetype.net
>> + * Released under GPLv2 License.
>> + */
>> +
>> +(function() {
>> +    tinymce.PluginManager.requireLangPack('insertvideo');
>> +    tinymce.create('tinymce.plugins.InsertVideoPlugin', {
>> +        init : function(ed, url) {
>> +            var t = this;
>> +                t.ed = ed;
>> +                t.url = url;
>> +
>> +            ed.onBeforeSetContent.add(function(ed, o) {
>> +                o.content = t._insertToEditor(t, o.content);
>> +            });
>> +
>> +            ed.onPostProcess.add(function(ed, o) {
>> +                if (o.set){
>> +                    o.content = t._insertToEditor(t, o.content);
>> +                }
>> +                if (o.get){
>> +                    o.content = t._getFromEditor(t, o.content);
>> +                }
>> +            });
>> +
>> +            ed.addCommand('mceInsertVideo', function() {
>> +                ed.windowManager.open({
>> +                    file : url + '/videoinput.html',
>> +                    width : 500,
>> +                    height : 300,
>> +                    inline : 1
>> +                }, {
>> +                    plugin_url : url
>> +                });
>> +            });
>> +
>> +            // Register insertresource button
>> +            ed.addButton('insertvideo', {
>> +                title : 'insertvideo.desc',
>> +                cmd : 'mceInsertVideo',
>> +                image : url + '/img/youtube.png'
>> +            });
>> +
>> +            ed.onInit.add(function() {
>> +                if (ed.settings.content_css !== false)
>> +                    ed.dom.loadCSS(url + "/css/content.css");
>> +            });
>> +        },
>> +
>> +        getInfo : function() {
>> +            return {
>> +                longname : 'Insert Video',
>> +                author : 'LifeType Team',
>> +                authorurl : 'http://www.lifetype.net',
>> +                infourl : 'http://www.lifetype.net',
>> +                version : tinymce.majorVersion + "." +
>> tinymce.minorVersion
>> +            };
>> +        },
>> +
>> +        _insertToEditor : function(t, content) {
>> +            // Parse all object tags and replace them with img
>> +            cdom = t.ed.dom.create('div');
>> +            t.ed.dom.setHTML(cdom, content);
>> +            elems = t.ed.dom.select('object[data]', cdom);
>> +
>> +            tinymce.each(elems, function(e) {
>> +                src = e.data;
>> +                cls = t._getVideoType(src);
>> +                if (src && cls) {
>> +                    height = e.height;
>> +                    width = e.width;
>> +                    imgHTML = t._getVideoImgHTML(src, height, width,
>> cls);
>> +                    t.ed.dom.setOuterHTML(e, imgHTML);
>> +                }
>> +            });
>> +
>> +            content = cdom.innerHTML;
>> +            t.ed.dom.remove(cdom);
>> +
>> +            return content;
>> +        },
>> +
>> +        _getFromEditor : function(t, content) {
>> +            // Parse all img[class=ltVideo*] tags and replace them with
>> object+embed
>> +            cdom = t.ed.dom.create('div');
>> +            t.ed.dom.setHTML(cdom, content);
>> +            elems = t.ed.dom.select('img[class^=ltVideo]', cdom);
>> +
>> +            tinymce.each(elems, function(e) {
>> +                cls = t._isValidVideoType(e.className);
>> +                src = e.alt;
>> +                if (src && cls) {
>> +                    height = e.height;
>> +                    width = e.width;
>> +                    embedHTML = t._getVideoFlashHTML(src, height, width,
>> cls);
>> +                    t.ed.dom.setOuterHTML(e, embedHTML);
>> +                }
>> +            });
>> +
>> +            content = cdom.innerHTML;
>> +            t.ed.dom.remove(cdom);
>> +
>> +            return content;
>> +        },
>> +
>> +        _getVideoType : function(url)
>> +        {
>> +          var sites = {
>> +                GoogleVideo : {regexp : /^http:\/\/video\.google\.com\//,
>> cls : 'ltVideoGoogleVideo'},
>> +                YouTube     : {regexp :
>> /^http:\/\/.{2,3}\.youtube\.com\//, cls : 'ltVideoYouTube'},
>> +                Metacafe    : {regexp : /^http:\/\/www\.metacafe\.com\//,
>> cls : 'ltVideoMetacafe'},
>> +                Ifilm       : {regexp : /^http:\/\/www\.ifilm\.com\//,
>> cls : 'ltVideoIfilm'},
>> +                VideoGoear  : {regexp : /^http:\/\/www\.goear.com\//,
>> cls : 'ltVideoGoear'},
>> +                Grouper     : {regexp : /^http:\/\/www\.grouper\.com\//,
>> cls : 'ltVideoGrouper'},
>> +                DailyMotion : {regexp :
>> /^http:\/\/www\.dailymotion\.com\//, cls : 'ltVideoDailymot'},
>> +                Vimeo       : {regexp : /^http:\/\/vimeo\.com\//, cls :
>> 'ltVideoVimeo'}
>> +            };
>> +
>> +            var cls = '';
>> +            for (site in sites) {
>> +                if (url.match(sites[site].regexp)) {
>> +                    cls = sites[site].cls;
>> +                    break;
>> +                }
>> +            }
>> +
>> +            return( cls );
>> +        },
>> +
>> +        _isValidVideoType: function(cls) {
>> +            result =
>> cls.match(/^ltVideo(GoogleVideo|YouTube|Metacafe|Ifilm|Goear|Grouper|Dailymot|Vimeo)/);
>> +
>> +            return (result ? 'ltVideo'+result[1] : false);
>> +        },
>> +
>> +        _getVideoImgHTML : function(src, height, width, cls) {
>> +            html = '<img width="' + width + '" height="' + height + '"' +
>> +                   ' src="' + this.url + '/img/spacer.gif' + '" title="'
>> + src + '"' +
>> +                   ' alt="' + src + '" class="'+ cls +'" />';
>> +
>> +            return html;
>> +        },
>> +
>> +        _getVideoFlashHTML : function(url, height, width, cls)
>> +        {
>> +            html = '<object type="application/x-shockwave-flash" width="'
>> + width + '" height="' + height + '" data="' + url + '" class="' + cls +
>> '">' +
>> +                   '<param name="movie" value="' + url + '" />' +
>> +                   '<param name="wmode" value="transparent" />' +
>> +                   '<param name="allowScriptAccess" value="sameDomain"
>> />' +
>> +                   '<param name="quality" value="best" />' +
>> +                   '<param name="bgcolor" value="#ffffff" />';
>> +            if (cls == 'ltVideoGoear') {
>> +                html += '<param name="FlashVars" value="' +
>> url.substring( 43, url.length ) + '" />';
>> +            } else {
>> +                html += '<param name="FlashVars"
>> value="playerMode=embedded" />';
>> +            }
>> +
>> +            html += '</object>';
>> +
>> +            return html;
>> +        }
>> +
>> +    });
>> +
>> +    // Register plugin
>> +    tinymce.PluginManager.add('insertvideo',
>> tinymce.plugins.InsertVideoPlugin);
>> +})();
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/functions.js
>> ===================================================================
>> --- plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/functions.js
>>                              (rev 0)
>> +++ plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/functions.js
>>      2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,268 @@
>> +function init() {
>> +    tinyMCEPopup.requireLangPack();
>> +    tinyMCEPopup.resizeToInnerSize();
>> +}
>> +
>> +function isValidUrl( url )
>> +{
>> +    var regexp =
>> /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
>> +    return regexp.test(url);
>> +}
>> +
>> +function getVimeoLink( url )
>> +{
>> +    var regexp = /http:\/\/(?:www\.)?vimeo.com\/([0-9]+)/i;
>> +    result = regexp.exec( url );
>> +    if(!result){
>> +        return url;
>> +    }
>> +    videoId = result[1];
>> +    url = "http://vimeo.com/moogaloop.swf?clip_id=
>> "+videoId+"&amp;server=vimeo.com
>> &amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=0a7ac2&amp;fullscreen=1";
>> +    return url;
>> +}
>> +
>> +function getYouTubeLink( url )
>> +{
>> +    var regexp;
>> +    // check if this is a URL pointing to a youtube link or to a youtube
>> video
>> +    //if( url.substring( 0, 31 ) == "http://www.youtube.com/watch?v=" )
>> {
>> +    if( url.match( /http:\/\/.{2,3}\.youtube.com\/.*?v=/i )) {
>> +        // and if it's a link to a normal youtube page, build the right
>> link to the video player
>> +        regexp = /http:\/\/.{2,3}\.youtube.com
>> \/.*?v=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            // let's try to make a best guess...
>> +            videoId = url.substring( 31, url.length );
>> +        }
>> +
>> +        url = "http://www.youtube.com/v/" + videoId;
>> +    }
>> +    else if ( url.substring( 0, 27 ) == "http://youtube.com/watch?v=" )
>> {
>> +        // Checks if the URL is missing WWW.
>> +        // and if it's a link to a normal youtube page, build the right
>> link to the video player
>> +        regexp = /http:\/\/youtube.com\/.*?v=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            // let's try to make a best guess...
>> +            videoId = url.substring( 27, url.length );
>> +        }
>> +
>> +        url = "http://www.youtube.com/v/" + videoId;
>> +    }
>> +    else {
>> +        regexp = /.*?v=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +            url = "http://www.youtube.com/v/" + videoId;
>> +        }
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getGoogleVideoLink( url )
>> +{
>> +    // check if it's a link to a video page or a link to the video player
>> +    if( url.substring( 0, 40 ) == "
>> http://video.google.com/videoplay?docid=" ) {
>> +        // if it's a link to a video page, generate the right one
>> +        var regexp = /http:\/\/video.google.com
>> \/.*?docid=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            videoId = url.substring( 40, url.length );
>> +        }
>> +
>> +        url = "http://video.google.com/googleplayer.swf?docId=" +
>> videoId;
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getMetacafeVideoLink( url )
>> +{
>> +    // check if it's a link to a video page or a link to the video player
>> +    if( url.substring( 0, 30 ) == "http://www.metacafe.com/watch/" ) {
>> +        // if it's a link to a video page, generate the right one
>> +        var regexp = /http:\/\/www.metacafe.com
>> \/watch\/.*?docid=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            videoId = url.substring( 30, url.length - 1 );
>> +        }
>> +
>> +        url = "http://www.metacafe.com/fplayer/" + videoId + ".swf";
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getiFilmVideoLink( url )
>> +{
>> +    // check if it's a link to a video page or a link to the video player
>> +    if( url.substring( 0, 27 ) == "http://www.ifilm.com/video/" ) {
>> +        // if it's a link to a video page, generate the right one
>> +        var regexp = /http:\/\/www.ifilm.com
>> \/video\/.*?docid=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            videoId = url.substring( 27, url.length );
>> +        }
>> +
>> +        url = "http://www.ifilm.com/efp?flvbaseclip=" + videoId ;
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getGoearVideoLink( url )
>> +{
>> +    // check if it's a link to a video page or a link to the video player
>> +    if( url.substring( 0, 34 ) == "http://www.goear.com/listen.php?v=" )
>> {
>> +        // if it's a link to a video page, generate the right one
>> +        var regexp = /http:\/\/www.goear.com
>> \/.*?v=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            videoId = url.substring( 34, url.length );
>> +        }
>> +        url = "http://www.goear.com/files/external.swf?file=" + videoId
>> ;
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getGrouperVideoLink( url )
>> +{
>> +    // check if it's a link to a video page or a link to the video player
>> +    if( url.substring( 0, 46 ) == "
>> http://grouper.com/video/MediaDetails.aspx?id=" ) {
>> +        // if it's a link to a video page, generate the right one
>> +        var regexp = /http:\/\/www.grouper.com
>> \/video\/MediaDetails.aspx.*?id=([\-0-9a-zA-z_]*).*/i;
>> +        result = regexp.exec( url );
>> +        if( result ) {
>> +            videoId = result[1];
>> +        }
>> +        else {
>> +            videoId = url.substring( 46, url.length );
>> +        }
>> +
>> +        url = "
>> http://grouper.com/mtg/mtgPlayer.swf?gvars=vurl~http%3a%2f%2fgrouper.com%2frss%2fflv.ashx%3fid%3d<http://grouper.com/mtg/mtgPlayer.swf?gvars=vurl%7Ehttp%3a%2f%2fgrouper.com%2frss%2fflv.ashx%3fid%3d>"
>> + videoId + "_rf%7e-9_vfver~8_ap~1_extid~-1";
>> +    }
>> +
>> +    return( url );
>> +}
>> +
>> +function getDailymotionLink( url )
>> +{
>> +    // check if this is a URL pointing to a dailymotion embedded video
>> link
>> +    var regexp =
>> /object\swidth="([0-9]+)"\sheight="([0-9]+)".+value="(http:\/\/www\.dailymotion\.com\/swf\/\w+).*"/;
>> +    result = regexp.exec( url );
>> +    return( result );
>> +}
>> +
>> +function insertVideoCode()
>> +{
>> +    // get and check the URL
>> +    urlField = document.forms[0].url;
>> +    url = urlField.value;
>> +    if( url === "" || !isValidUrl( url )) {
>> +        window.alert( tinyMCEPopup.getLang('insertvideo_dlg.badurl', 0)
>> );
>> +        return( false );
>> +    }
>> +
>> +    // check if a destination system was selected
>> +    vimeo = document.getElementById("vimeo");
>> +    youtube = document.getElementById("youtube");
>> +    gvideo = document.getElementById("gvideo");
>> +    metacafe = document.getElementById("metacafe");
>> +    ifilm = document.getElementById("ifilm");
>> +    goear = document.getElementById("goear");
>> +    grouper = document.getElementById("grouper");
>> +    dailymot = document.getElementById("dailymot");
>> +
>> +    if( vimeo.checked === false &&
>> +        youtube.checked === false &&
>> +        gvideo.checked === false &&
>> +        metacafe.checked === false &&
>> +        ifilm.checked === false &&
>> +        goear.checked === false &&
>> +        grouper.checked === false &&
>> +        dailymot.checked === false ) {
>> +        window.alert(
>> tinyMCEPopup.getLang('insertvideo_dlg.selectiontype', 0) );
>> +        return( false );
>> +    }
>> +
>> +    if( vimeo.checked === true ) {
>> +        link = getVimeoLink( url );
>> +        css="ltVideoVimeo";
>> +        width=425;
>> +        height=355;
>> +    }
>> +    if( youtube.checked === true ) {
>> +        link = getYouTubeLink( url );
>> +        css="ltVideoYouTube";
>> +        width=425;
>> +        height=355;
>> +    }
>> +    if( gvideo.checked === true ) {
>> +        link = getGoogleVideoLink( url );
>> +        css="ltVideoGoogleVideo";
>> +        width=425;
>> +        height=355;
>> +    }
>> +    if( metacafe.checked === true ) {
>> +        link = getMetacafeVideoLink( url );
>> +        css="ltVideoMetacafe";
>> +        width=400;
>> +        height=345;
>> +    }
>> +    if( ifilm.checked === true ) {
>> +        link = getiFilmVideoLink( url );
>> +        css="ltVideoIfilm";
>> +        width=448;
>> +        height=365;
>> +    }
>> +    if( goear.checked === true ) {
>> +        link = getGoearVideoLink( url );
>> +        css="ltVideoGoear";
>> +        width=366;
>> +        height=75;
>> +    }
>> +    if( grouper.checked === true ) {
>> +        link = getGrouperVideoLink( url );
>> +        css="ltVideoGrouper";
>> +        width=496;
>> +        height=398;
>> +    }
>> +    if( dailymot.checked === true ) {
>> +        result = getDailymotionLink( url );
>> +        width = result[1];
>> +        height = result[2];
>> +        link = result[3];
>> +        css="ltVideoDailymot";
>> +    }
>> +    insertFlash( link, css, width, height );
>> +}
>> +
>> +function insertFlash( file, css, width, height ) {
>> +    var html = '<img src="' + tinyMCEPopup.getWindowArg('plugin_url') +
>> '/img/spacer.gif" mce_src="' + tinyMCEPopup.getWindowArg('plugin_url') +
>> '/img/spacer.gif" ' +
>> +               'width="' + width + '" height="' + height + '" ' +
>> +               'border="0" alt="' + file + '" title="' + file + '"
>> class="' + css + '" />';
>> +
>> +    tinyMCEPopup.execCommand("mceInsertContent", true, html);
>> +    tinyMCEPopup.close();
>> +}
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/bolt.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/bolt.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dailymotion.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dailymotion.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dalealplay.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/dalealplay.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/goear.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/goear.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/grouper.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/grouper.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/gvideo.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/gvideo.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/ifilm.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/ifilm.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/metacafe.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/metacafe.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/spacer.gif
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/spacer.gif
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/vimeo.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/vimeo.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/youtube.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/youtube.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/zippyvideos.png
>> ===================================================================
>> (Binary files differ)
>>
>>
>> Property changes on:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/img/zippyvideos.png
>> ___________________________________________________________________
>> Added: svn:mime-type
>>  + application/octet-stream
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en.js
>> ===================================================================
>> --- plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en.js
>>                               (rev 0)
>> +++ plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en.js
>>       2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,3 @@
>> +tinyMCE.addI18n('en.insertvideo',{
>> +       desc : 'Insert Video'
>> +});
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en_dlg.js
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en_dlg.js
>>                         (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/langs/en_dlg.js
>> 2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,10 @@
>> +tinyMCE.addI18n('en.insertvideo_dlg',{
>> +    desc : 'Insert Video',
>> +    linklegend : 'Please provide a link to a video file.',
>> +    link : 'Video URL:',
>> +    selsource : 'Select Source:',
>> +    dailymotembeddableplayer : 'Embeddable Player',
>> +    badurl : 'Invalid URL',
>> +    selectiontype : 'You must select the right video site.',
>> +    inputurlstyle : 'style="width:350px;"'
>> +});
>>
>> Added:
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/videoinput.html
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/videoinput.html
>>                         (rev 0)
>> +++
>> plog/branches/lifetype-1.2/js/tinymce/plugins/insertvideo/videoinput.html
>> 2010-12-21 17:37:19 UTC (rev 7098)
>> @@ -0,0 +1,52 @@
>> +<html xmlns="http://www.w3.org/1999/xhtml">
>> +<head>
>> +    <title>{#insertvideo_dlg.desc}</title>
>> +    <script language="javascript" type="text/javascript"
>> src="../../tiny_mce_popup.js"></script>
>> +    <script language="javascript" type="text/javascript"
>> src="functions.js"></script>
>> +    <script type="text/javascript">
>> +        init();
>> +    </script>
>> +    <base target="_self" />
>> +</head>
>> +<body style="display: none">
>> +    <form name="video" id="video" method="post" action="#">
>> +        <div class="tabs">
>> +            <ul>
>> +                <li id="general_tab"
>> class="current"><span>{#insertvideo_dlg.desc}</span></li>
>> +            </ul>
>> +        </div>
>> +        <div class="panel_wrapper">
>> +            <div id="general_panel" class="panel_current">
>> +                <legend>{#insertvideo_dlg.linklegend}</legend>
>> +                <table border="0" cellpadding="4" cellspacing="0">
>> +                    <tr>
>> +                        <td nowrap="nowrap">{#insertvideo_dlg.link}</td>
>> +                        <td><input type="text" id="url" name="url"
>> value="" {#insertvideo_dlg.inputurlstyle} /></td>
>> +                    </tr>
>> +                    <tr>
>> +                        <td
>> nowrap="nowrap">{#insertvideo_dlg.selsource}</td>
>> +                        <td>
>> +                            <input type="radio" id="youtube"
>> style="border:0px" name="type" value="1"><img src="img/youtube.png"
>> alt="YouTube" /> YouTube<br />
>> +                            <input type="radio" id="gvideo"
>> style="border:0px"name="type" value="2"><img src="img/gvideo.png"
>> alt="Google Video" /> Google Video<br />
>> +                            <input type="radio" id="metacafe"
>> style="border:0px"name="type" value="3"><img src="img/metacafe.png"
>> alt="Metacafe" /> Metacafe<br />
>> +                            <input type="radio" id="ifilm"
>> style="border:0px"name="type" value="4"><img src="img/ifilm.png" alt="iFilm"
>> /> iFilm<br />
>> +                            <input type="radio" id="goear"
>> style="border:0px"name="type" value="5"><img src="img/goear.png" alt="Goear"
>> /> Goear<br />
>> +                            <input type="radio" id="grouper"
>> style="border:0px"name="type" value="6"><img src="img/grouper.png"
>> alt="Grouper" /> Grouper<br />
>> +                            <input type="radio" id="dailymot"
>> style="border:0px"name="type" value="7"><img src="img/dailymotion.png"
>> alt="dailymotion" /> dailymotion <span style="color: grey; font-style:
>> oblique;">({#insertvideo_dlg.dailymotembeddableplayer})</span><br />
>> +                            <input type="radio" id="vimeo"
>> style="border:0px" name="type" value="8"><img src="img/vimeo.png"
>> alt="Vimeo" /> Vimeo<br />
>> +                        </td>
>> +                    </tr>
>> +                </table>
>> +            </div>
>> +        </div>
>> +        <div class="mceActionPanel">
>> +            <div style="float:left">
>> +                <input type="button" name="insert" value="{#insert}"
>> onClick="insertVideoCode()" id="insert" />
>> +            </div>
>> +            <div style="float:right">
>> +                <input type="button" name="cancel" value="{#close}"
>> onclick="tinyMCEPopup.close();" id="cancel" />
>> +            </div>
>> +        </div>
>> +    </form>
>> +</body>
>> +</html>
>>
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://limedaley.com/mailman/listinfo/plog-svn
>>
>>
> --
> Jon Daley
> http://jon.limedaley.com
> ~~
> Corduroy pillows:  They're making headlines!
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://limedaley.com/mailman/listinfo/plog-svn
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://limedaley.com/pipermail/plog-svn/attachments/20101222/1944c5a8/attachment-0001.htm>


More information about the pLog-svn mailing list