| 1 |
- tinymce.PluginManager.add("media",function(e,t){var i=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}];function r(e){if(e.indexOf(".mp3")!=-1){return"audio/mpeg"}if(e.indexOf(".wav")!=-1){return"audio/wav"}if(e.indexOf(".mp4")!=-1){return"video/mp4"}if(e.indexOf(".webm")!=-1){return"video/webm"}if(e.indexOf(".ogg")!=-1){return"video/ogg"}if(e.indexOf(".swf")!=-1){return"application/x-shockwave-flash"}return""}function a(t){var i=e.settings.media_scripts;if(i){for(var r=0;r<i.length;r++){if(t.indexOf(i[r].filter)!==-1){return i[r]}}}}function o(){var t,i,r,a;var o=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:true,label:"Source"}];function m(e){var a,o,c,s;a=t.find("#width")[0];o=t.find("#height")[0];c=a.value();s=o.value();if(t.find("#constrain")[0].checked()&&i&&r&&c&&s){if(e.control==a){s=Math.round(c/i*s);o.value(s)}else{c=Math.round(s/r*c);a.value(c)}}i=c;r=s}if(e.settings.media_alt_source!==false){o.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"})}if(e.settings.media_poster!==false){o.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"})}if(e.settings.media_dimensions!==false){o.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:m},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:m},{name:"constrain",type:"checkbox",checked:true,text:"Constrain proportions"}]})}a=u(e.selection.getNode());i=a.width;r=a.height;t=e.windowManager.open({title:"Insert/edit video",data:a,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){a=n(this.next().find("#embed").value());this.fromJSON(a)},items:o},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(s(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},{id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:c(),multiline:true,label:"Source"}]}],onSubmit:function(){e.insertContent(s(this.toJSON()))}})}function c(){var t=e.selection.getNode();if(t.getAttribute("data-mce-object")){return e.selection.getContent()}}function s(o){var c="";if(!o.source1){tinymce.extend(o,n(o.embed));if(!o.source1){return""}}if(!o.source2){o.source2=""}if(!o.poster){o.poster=""}o.source1=e.convertURL(o.source1,"source");o.source2=e.convertURL(o.source2,"source");o.source1mime=r(o.source1);o.source2mime=r(o.source2);o.poster=e.convertURL(o.poster,"poster");o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie");if(o.embed){c=m(o.embed,o,true)}else{tinymce.each(i,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){r=e.url;for(i=0;t[i];i++){r=r.replace("$"+i,function(){return t[i]})}o.source1=r;o.type=e.type;o.width=o.width||e.w;o.height=o.height||e.h}});var s=a(o.source1);if(s){o.type="script";o.width=s.width;o.height=s.height}o.width=o.width||300;o.height=o.height||150;tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)});if(o.type=="iframe"){c+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>'}else if(o.source1mime=="application/x-shockwave-flash"){c+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">';if(o.poster){c+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'}c+="</object>"}else if(o.source1mime.indexOf("audio")!=-1){if(e.settings.audio_template_callback){c=e.settings.audio_template_callback(o)}else{c+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>"}}else if(o.type=="script"){c+='<script src="'+o.source1+'"></script>'}else{if(e.settings.video_template_callback){c=e.settings.video_template_callback(o)}else{c='<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n'+'<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}}}return c}function n(e){var t={};new tinymce.html.SaxParser({validate:false,allow_conditional_comments:true,special:"script,noscript",start:function(e,i){if(!t.source1&&e=="param"){t.source1=i.map.movie}if(e=="iframe"||e=="object"||e=="embed"||e=="video"||e=="audio"){if(!t.type){t.type=e}t=tinymce.extend(i.map,t)}if(e=="script"){var r=a(i.map.src);if(!r){return}t={type:"script",source1:i.map.src,width:r.width,height:r.height}}if(e=="source"){if(!t.source1){t.source1=i.map.src}else if(!t.source2){t.source2=i.map.src}}if(e=="img"&&!t.poster){t.poster=i.map.src}}}).parse(e);t.source1=t.source1||t.src||t.data;t.source2=t.source2||"";t.poster=t.poster||"";return t}function u(t){if(t.getAttribute("data-mce-object")){return n(e.serializer.serialize(t,{selection:true}))}return{}}function m(e,t,i){var r=new tinymce.html.Writer;var a=0,o;function c(e,t){var i,r,a,o;for(i in t){a=""+t[i];if(e.map[i]){r=e.length;while(r--){o=e[r];if(o.name==i){if(a){e.map[i]=a;o.value=a}else{delete e.map[i];e.splice(r,1)}}}}else if(a){e.push({name:i,value:a});e.map[i]=a}}}new tinymce.html.SaxParser({validate:false,allow_conditional_comments:true,special:"script,noscript",comment:function(e){r.comment(e)},cdata:function(e){r.cdata(e)},text:function(e,t){r.text(e,t)},start:function(e,s,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":c(s,{width:t.width,height:t.height});break}if(i){switch(e){case"video":c(s,{poster:t.poster,src:""});if(t.source2){c(s,{src:""})}break;case"iframe":c(s,{src:t.source1});break;case"source":a++;if(a<=2){c(s,{src:t["source"+a],type:t["source"+a+"mime"]});if(!t["source"+a]){return}}break;case"img":if(!t.poster){return}o=true;break}}r.start(e,s,n)},end:function(e){if(e=="video"&&i){for(var s=1;s<=2;s++){if(t["source"+s]){var n=[];n.map={};if(a<s){c(n,{src:t["source"+s],type:t["source"+s+"mime"]});r.start("source",n,true)}}}}if(t.poster&&e=="object"&&i&&!o){var u=[];u.map={};c(u,{src:t.poster,width:t.width,height:t.height});r.start("img",u,true)}r.end(e)}},new tinymce.html.Schema({})).parse(e);return r.getContent()}e.on("ResolveName",function(e){var t;if(e.target.nodeType==1&&(t=e.target.getAttribute("data-mce-object"))){e.name=t}});e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}});e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){var r=t.length,o,c,s,n,u,m,l;var d;while(r--){c=t[r];if(c.name=="script"){d=a(c.attr("src"));if(!d){continue}}s=new tinymce.html.Node("img",1);s.shortEnded=true;if(d){if(d.width){c.attr("width",d.width.toString())}if(d.height){c.attr("height",d.height.toString())}}m=c.attributes;o=m.length;while(o--){n=m[o].name;u=m[o].value;if(n!=="width"&&n!=="height"&&n!=="style"){if(n=="data"||n=="src"){u=e.convertURL(u,n)}s.attr("data-mce-p-"+n,u)}}l=c.firstChild&&c.firstChild.value;if(l){s.attr("data-mce-html",escape(l));s.firstChild=null}s.attr({width:c.attr("width")||"300",height:c.attr("height")||(i=="audio"?"30":"150"),style:c.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,class:"mce-object mce-object-"+i});c.replace(s)}});e.serializer.addAttributeFilter("data-mce-object",function(e,t){var i=e.length,r,a,o,c,s,n,u;while(i--){r=e[i];u=r.attr(t);a=new tinymce.html.Node(u,1);if(u!="audio"&&u!="script"){a.attr({width:r.attr("width"),height:r.attr("height")})}a.attr({style:r.attr("style")});c=r.attributes;o=c.length;while(o--){var m=c[o].name;if(m.indexOf("data-mce-p-")===0){a.attr(m.substr(11),c[o].value)}}if(u=="script"){a.attr("type","text/javascript")}s=r.attr("data-mce-html");if(s){n=new tinymce.html.Node("#text",3);n.raw=true;n.value=unescape(s);a.append(n)}r.replace(a)}})});e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");if(t=="audio"||t=="script"){e.preventDefault()}});e.on("objectResized",function(e){var t=e.target,i;if(t.getAttribute("data-mce-object")){i=t.getAttribute("data-mce-html");if(i){i=unescape(i);t.setAttribute("data-mce-html",escape(m(i,{width:e.width,height:e.height})))}}});e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]});e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:true})});
|