aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeshan <heshan@heidisoft.com>2011-03-07 22:37:41 +0530
committerHeshan <heshan@heidisoft.com>2011-03-07 22:37:41 +0530
commita9addd6ed7ab0e15e1d4b3db4c67ea9b00578d2d (patch)
treeb3efb6e8821cadfeace771eb1fc5e23b1925fe84
parentf804c5913e46299bc52f97ce7905bc00c162db81 (diff)
downloadvideo-a9addd6ed7ab0e15e1d4b3db4c67ea9b00578d2d.tar.gz
video-a9addd6ed7ab0e15e1d4b3db4c67ea9b00578d2d.tar.bz2
Remove unwanted JS files and added manual thumbnail update on fallback and manual select.
-rw-r--r--js/flowplayer-3.2.0.min.js24
-rw-r--r--js/jquery.media.js457
-rw-r--r--js/jquery.metadata.js147
-rw-r--r--js/video.js112
-rw-r--r--video.field.inc2
-rw-r--r--video.module52
6 files changed, 76 insertions, 718 deletions
diff --git a/js/flowplayer-3.2.0.min.js b/js/flowplayer-3.2.0.min.js
deleted file mode 100644
index 2baa001..0000000
--- a/js/flowplayer-3.2.0.min.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * flowplayer.js 3.2.0. The Flowplayer API
- *
- * Copyright 2009 Flowplayer Oy
- *
- * This file is part of Flowplayer.
- *
- * Flowplayer is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Flowplayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Flowplayer. If not, see <http://www.gnu.org/licenses/>.
- *
- * Date: 2010-05-03 20:23:59 +0000 (Mon, 03 May 2010)
- * Revision: 468
- */
-(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var y=q._api().fp_getPlugin(p);if(!y){return}i(o,y);delete o.methods;if(!u){m(y.methods,function(){var A=""+this;o[A]=function(){var B=[].slice.call(arguments);var C=q._api().fp_invoke(p,A,B);return C==="undefined"||C===undefined?o:C}});u=true}}var z=s[w];if(z){z.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}flashembed(q,G,{config:t});if(J){J.cached=true;j(x,"onLoad",J)}};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.0";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=v.clientHeight;m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var H=0;m(t.playlist,function(){var J=this;if(typeof J=="object"&&J.length){J={url:""+J}}m(t.clip,function(K,L){if(L!==undefined&&J[K]===undefined&&typeof L!="function"){J[K]=L}});t.playlist[H]=J;J=new h(J,H,w);F.push(J);H++});m(t,function(J,K){if(typeof K=="function"){if(s[J]){s[J](K)}else{j(x,J,K)}delete t[J]}});m(t.plugins,function(J,K){if(K){y[J]=new l(J,K,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);function I(J){if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(J)}u=q.innerHTML;if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",I,false)}else{if(q.attachEvent){q.attachEvent("onclick",I)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}else{q=z;B()}}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://www.adobe.com/go/getflashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(l,f){if(f){for(key in f){if(f.hasOwnProperty(key)){l[key]=f[key]}}}return l}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(n){try{var l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=l&&l.GetVariable("$version")}catch(m){}}f=e.exec(f);return[f[1],f[3]]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='<object width="'+o.width+'" height="'+o.height+'" id="'+o.id+'"" name="'+o.id+'"';if(o.cachebusting){o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(o.w3c||!h){n+=' data="'+o.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(o.w3c||h){n+='<param name="movie" value="'+o.src+'" />'}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+='<param name="'+m+'" value="'+o[m]+'" />'}}var p="";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"}}p=p.slice(0,-1);n+='<param name="flashvars" value=\''+p+"' />"}n+="</object>";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="<h2>Flash version "+n.version+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(f.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+j+"'>here</a></p>");if(f.tagName=="A"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.0"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})(); \ No newline at end of file
diff --git a/js/jquery.media.js b/js/jquery.media.js
deleted file mode 100644
index 71bc987..0000000
--- a/js/jquery.media.js
+++ /dev/null
@@ -1,457 +0,0 @@
-/*
- * jQuery Media Plugin for converting elements into rich media content.
- *
- * Examples and documentation at: http://malsup.com/jquery/media/
- * Copyright (c) 2007-2008 M. Alsup
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- * @author: M. Alsup
- * @version: 0.92 (24-SEP-2009)
- * @requires jQuery v1.1.2 or later
- *
- * Supported Media Players:
- * - Flash
- * - Quicktime
- * - Real Player
- * - Silverlight
- * - Windows Media Player
- * - iframe
- *
- * Supported Media Formats:
- * Any types supported by the above players, such as:
- * Video: asf, avi, flv, mov, mpg, mpeg, mp4, qt, smil, swf, wmv, 3g2, 3gp
- * Audio: aif, aac, au, gsm, mid, midi, mov, mp3, m4a, snd, rm, wav, wma
- * Other: bmp, html, pdf, psd, qif, qtif, qti, tif, tiff, xaml
- *
- * Thanks to Mark Hicken and Brent Pedersen for helping me debug this on the Mac!
- * Thanks to Dan Rossi for numerous bug reports and code bits!
- * Thanks to Skye Giordano for several great suggestions!
- * Thanks to Richard Connamacher for excellent improvements to the non-IE behavior!
- */
-;(function($) {
-
-/**
- * Chainable method for converting elements into rich media.
- *
- * @param options
- * @param callback fn invoked for each matched element before conversion
- * @param callback fn invoked for each matched element after conversion
- */
-$.fn.media = function(options, f1, f2) {
- if (options == 'undo') {
- return this.each(function() {
- var $this = $(this);
- var html = $this.data('media.origHTML');
- if (html)
- $this.replaceWith(html);
- });
- }
-
- return this.each(function() {
- if (typeof options == 'function') {
- f2 = f1;
- f1 = options;
- options = {};
- }
- var o = getSettings(this, options);
- // pre-conversion callback, passes original element and fully populated options
- if (typeof f1 == 'function') f1(this, o);
-
- var r = getTypesRegExp();
- var m = r.exec(o.src.toLowerCase()) || [''];
-
- o.type ? m[0] = o.type : m.shift();
- for (var i=0; i < m.length; i++) {
- fn = m[i].toLowerCase();
- if (isDigit(fn[0])) fn = 'fn' + fn; // fns can't begin with numbers
- if (!$.fn.media[fn])
- continue; // unrecognized media type
- // normalize autoplay settings
- var player = $.fn.media[fn+'_player'];
- if (!o.params) o.params = {};
- if (player) {
- var num = player.autoplayAttr == 'autostart';
- o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;
- }
- var $div = $.fn.media[fn](this, o);
-
- $div.css('backgroundColor', o.bgColor).width(o.width);
-
- if (o.canUndo) {
- var $temp = $('<div></div>').append(this);
- $div.data('media.origHTML', $temp.html()); // store original markup
- }
-
- // post-conversion callback, passes original element, new div element and fully populated options
- if (typeof f2 == 'function') f2(this, $div[0], o, player.name);
- break;
- }
- });
-};
-
-/**
- * Non-chainable method for adding or changing file format / player mapping
- * @name mapFormat
- * @param String format File format extension (ie: mov, wav, mp3)
- * @param String player Player name to use for the format (one of: flash, quicktime, realplayer, winmedia, silverlight or iframe
- */
-$.fn.media.mapFormat = function(format, player) {
- if (!format || !player || !$.fn.media.defaults.players[player]) return; // invalid
- format = format.toLowerCase();
- if (isDigit(format[0])) format = 'fn' + format;
- $.fn.media[format] = $.fn.media[player];
- $.fn.media[format+'_player'] = $.fn.media.defaults.players[player];
-};
-
-// global defautls; override as needed
-$.fn.media.defaults = {
- standards: false, // use object tags only (no embeds for non-IE browsers)
- canUndo: true, // tells plugin to store the original markup so it can be reverted via: $(sel).mediaUndo()
- width: 400,
- height: 400,
- autoplay: 0, // normalized cross-player setting
- bgColor: '#ffffff', // background color
- params: { wmode: 'transparent'}, // added to object element as param elements; added to embed element as attrs
- attrs: {}, // added to object and embed elements as attrs
- flvKeyName: 'file', // key used for object src param (thanks to Andrea Ercolino)
- flashvars: {}, // added to flash content as flashvars param/attr
- flashVersion: '7', // required flash version
- expressInstaller: null, // src for express installer
-
- // default flash video and mp3 player (@see: http://jeroenwijering.com/?item=Flash_Media_Player)
- flvPlayer: 'mediaplayer.swf',
- mp3Player: 'mediaplayer.swf',
-
- // @see http://msdn2.microsoft.com/en-us/library/bb412401.aspx
- silverlight: {
- inplaceInstallPrompt: 'true', // display in-place install prompt?
- isWindowless: 'true', // windowless mode (false for wrapping markup)
- framerate: '24', // maximum framerate
- version: '0.9', // Silverlight version
- onError: null, // onError callback
- onLoad: null, // onLoad callback
- initParams: null, // object init params
- userContext: null // callback arg passed to the load callback
- }
-};
-
-// Media Players; think twice before overriding
-$.fn.media.defaults.players = {
- flash: {
- name: 'flash',
- title: 'Flash',
- types: 'flv,mp3,swf',
- mimetype: 'application/x-shockwave-flash',
- pluginspage: 'http://www.adobe.com/go/getflashplayer',
- ieAttrs: {
- classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
- type: 'application/x-oleobject',
- codebase: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion
- }
- },
- quicktime: {
- name: 'quicktime',
- title: 'QuickTime',
- mimetype: 'video/quicktime',
- pluginspage: 'http://www.apple.com/quicktime/download/',
- types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
- ieAttrs: {
- classid: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
- codebase: 'http://www.apple.com/qtactivex/qtplugin.cab'
- }
- },
- realplayer: {
- name: 'real',
- title: 'RealPlayer',
- types: 'ra,ram,rm,rpm,rv,smi,smil',
- mimetype: 'audio/x-pn-realaudio-plugin',
- pluginspage: 'http://www.real.com/player/',
- autoplayAttr: 'autostart',
- ieAttrs: {
- classid: 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'
- }
- },
- winmedia: {
- name: 'winmedia',
- title: 'Windows Media',
- types: 'asx,asf,avi,wma,wmv',
- mimetype: $.browser.mozilla && isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',
- pluginspage: 'http://www.microsoft.com/Windows/MediaPlayer/',
- autoplayAttr: 'autostart',
- oUrl: 'url',
- ieAttrs: {
- classid: 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',
- type: 'application/x-oleobject'
- }
- },
- // special cases
- iframe: {
- name: 'iframe',
- types: 'html,pdf'
- },
- silverlight: {
- name: 'silverlight',
- types: 'xaml'
- }
-};
-
-//
-// everything below here is private
-//
-
-
-// detection script for FF WMP plugin (http://www.therossman.org/experiments/wmp_play.html)
-// (hat tip to Mark Ross for this script)
-function isFirefoxWMPPluginInstalled() {
- var plugs = navigator.plugins;
- for (var i = 0; i < plugs.length; i++) {
- var plugin = plugs[i];
- if (plugin['filename'] == 'np-mswmp.dll')
- return true;
- }
- return false;
-}
-
-var counter = 1;
-
-for (var player in $.fn.media.defaults.players) {
- var types = $.fn.media.defaults.players[player].types;
- $.each(types.split(','), function(i,o) {
- if (isDigit(o[0])) o = 'fn' + o;
- $.fn.media[o] = $.fn.media[player] = getGenerator(player);
- $.fn.media[o+'_player'] = $.fn.media.defaults.players[player];
- });
-};
-
-function getTypesRegExp() {
- var types = '';
- for (var player in $.fn.media.defaults.players) {
- if (types.length) types += ',';
- types += $.fn.media.defaults.players[player].types;
- };
- return new RegExp('\\.(' + types.replace(/,/ig,'|') + ')\\b$');
-};
-
-function getGenerator(player) {
- return function(el, options) {
- return generate(el, options, player);
- };
-};
-
-function isDigit(c) {
- return '0123456789'.indexOf(c) > -1;
-};
-
-// flatten all possible options: global defaults, meta, option obj
-function getSettings(el, options) {
- options = options || {};
- var $el = $(el);
- var cls = el.className || '';
- // support metadata plugin (v1.0 and v2.0)
- var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};
- meta = meta || {};
- var w = meta.width || parseInt(((cls.match(/w:(\d+)/)||[])[1]||0));
- var h = meta.height || parseInt(((cls.match(/h:(\d+)/)||[])[1]||0));
-
- if (w) meta.width = w;
- if (h) meta.height = h;
- if (cls) meta.cls = cls;
-
- var a = $.fn.media.defaults;
- var b = options;
- var c = meta;
-
- var p = { params: { bgColor: options.bgColor || $.fn.media.defaults.bgColor } };
- var opts = $.extend({}, a, b, c);
- $.each(['attrs','params','flashvars','silverlight'], function(i,o) {
- opts[o] = $.extend({}, p[o] || {}, a[o] || {}, b[o] || {}, c[o] || {});
- });
-
- if (typeof opts.caption == 'undefined') opts.caption = $el.text();
-
- // make sure we have a source!
- opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';
- return opts;
-};
-
-//
-// Flash Player
-//
-
-// generate flash using SWFObject library if possible
-$.fn.media.swf = function(el, opts) {
- if (!window.SWFObject && !window.swfobject) {
- // roll our own
- if (opts.flashvars) {
- var a = [];
- for (var f in opts.flashvars)
- a.push(f + '=' + opts.flashvars[f]);
- if (!opts.params) opts.params = {};
- opts.params.flashvars = a.join('&');
- }
- return generate(el, opts, 'flash');
- }
-
- var id = el.id ? (' id="'+el.id+'"') : '';
- var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
- var $div = $('<div' + id + cls + '>');
-
- // swfobject v2+
- if (window.swfobject) {
- $(el).after($div).appendTo($div);
- if (!el.id) el.id = 'movie_player_' + counter++;
-
- // replace el with swfobject content
- swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion,
- opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);
- }
- // swfobject < v2
- else {
- $(el).after($div).remove();
- var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);
- if (opts.expressInstaller) so.useExpressInstall(opts.expressInstaller);
-
- for (var p in opts.params)
- if (p != 'bgColor') so.addParam(p, opts.params[p]);
- for (var f in opts.flashvars)
- so.addVariable(f, opts.flashvars[f]);
- so.write($div[0]);
- }
-
- if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
- return $div;
-};
-
-// map flv and mp3 files to the swf player by default
-$.fn.media.flv = $.fn.media.mp3 = function(el, opts) {
- var src = opts.src;
- var player = /\.mp3\b/i.test(src) ? $.fn.media.defaults.mp3Player : $.fn.media.defaults.flvPlayer;
- var key = opts.flvKeyName;
- src = encodeURIComponent(src);
- opts.src = player;
- opts.src = opts.src + '?'+key+'=' + (src);
- var srcObj = {};
- srcObj[key] = src;
- opts.flashvars = $.extend({}, srcObj, opts.flashvars );
- return $.fn.media.swf(el, opts);
-};
-
-//
-// Silverlight
-//
-$.fn.media.xaml = function(el, opts) {
- if (!window.Sys || !window.Sys.Silverlight) {
- if ($.fn.media.xaml.warning) return;
- $.fn.media.xaml.warning = 1;
- alert('You must include the Silverlight.js script.');
- return;
- }
-
- var props = {
- width: opts.width,
- height: opts.height,
- background: opts.bgColor,
- inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,
- isWindowless: opts.silverlight.isWindowless,
- framerate: opts.silverlight.framerate,
- version: opts.silverlight.version
- };
- var events = {
- onError: opts.silverlight.onError,
- onLoad: opts.silverlight.onLoad
- };
-
- var id1 = el.id ? (' id="'+el.id+'"') : '';
- var id2 = opts.id || 'AG' + counter++;
- // convert element to div
- var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
- var $div = $('<div' + id1 + cls + '>');
- $(el).after($div).remove();
-
- Sys.Silverlight.createObjectEx({
- source: opts.src,
- initParams: opts.silverlight.initParams,
- userContext: opts.silverlight.userContext,
- id: id2,
- parentElement: $div[0],
- properties: props,
- events: events
- });
-
- if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
- return $div;
-};
-
-//
-// generate object/embed markup
-//
-function generate(el, opts, player) {
- var $el = $(el);
- var o = $.fn.media.defaults.players[player];
-
- if (player == 'iframe') {
- var o = $('<iframe' + ' width="' + opts.width + '" height="' + opts.height + '" >');
- o.attr('src', opts.src);
- o.css('backgroundColor', o.bgColor);
- }
- else if ($.browser.msie) {
- var a = ['<object width="' + opts.width + '" height="' + opts.height + '" '];
- for (var key in opts.attrs)
- a.push(key + '="'+opts.attrs[key]+'" ');
- for (var key in o.ieAttrs || {}) {
- var v = o.ieAttrs[key];
- if (key == 'codebase' && window.location.protocol == 'https:')
- v = v.replace('http','https');
- a.push(key + '="'+v+'" ');
- }
- a.push('></ob'+'ject'+'>');
- var p = ['<param name="' + (o.oUrl || 'src') +'" value="' + opts.src + '">'];
- for (var key in opts.params)
- p.push('<param name="'+ key +'" value="' + opts.params[key] + '">');
- var o = document.createElement(a.join(''));
- for (var i=0; i < p.length; i++)
- o.appendChild(document.createElement(p[i]));
- }
- else if (o.standards) {
- // Rewritten to be standards compliant by Richard Connamacher
- var a = ['<object type="' + o.mimetype +'" width="' + opts.width + '" height="' + opts.height +'"'];
- if (opts.src) a.push(' data="' + opts.src + '" ');
- a.push('>');
- a.push('<param name="' + (o.oUrl || 'src') +'" value="' + opts.src + '">');
- for (var key in opts.params) {
- if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode
- continue;
- a.push('<param name="'+ key +'" value="' + opts.params[key] + '">');
- }
- // Alternate HTML
- a.push('<div><p><strong>'+o.title+' Required</strong></p><p>'+o.title+' is required to view this media. <a href="'+o.pluginspage+'">Download Here</a>.</p></div>');
- a.push('</ob'+'ject'+'>');
- }
- else {
- var a = ['<embed width="' + opts.width + '" height="' + opts.height + '" style="display:block"'];
- if (opts.src) a.push(' src="' + opts.src + '" ');
- for (var key in opts.attrs)
- a.push(key + '="'+opts.attrs[key]+'" ');
- for (var key in o.eAttrs || {})
- a.push(key + '="'+o.eAttrs[key]+'" ');
- for (var key in opts.params) {
- if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode
- continue;
- a.push(key + '="'+opts.params[key]+'" ');
- }
- a.push('></em'+'bed'+'>');
- }
- // convert element to div
- var id = el.id ? (' id="'+el.id+'"') : '';
- var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
- var $div = $('<div' + id + cls + '>');
- $el.after($div).remove();
- ($.browser.msie || player == 'iframe') ? $div.append(o) : $div.html(a.join(''));
- if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
- return $div;
-};
-
-
-})(jQuery);
diff --git a/js/jquery.metadata.js b/js/jquery.metadata.js
deleted file mode 100644
index 6ace78f..0000000
--- a/js/jquery.metadata.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Metadata - jQuery plugin for parsing metadata from elements
- *
- * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- *
- */
-
-/**
- * Sets the type of metadata to use. Metadata is encoded in JSON, and each property
- * in the JSON will become a property of the element itself.
- *
- * There are four supported types of metadata storage:
- *
- * attr: Inside an attribute. The name parameter indicates *which* attribute.
- *
- * class: Inside the class attribute, wrapped in curly braces: { }
- *
- * elem: Inside a child element (e.g. a script tag). The
- * name parameter indicates *which* element.
- * html5: Values are stored in data-* attributes.
- *
- * The metadata for an element is loaded the first time the element is accessed via jQuery.
- *
- * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements
- * matched by expr, then redefine the metadata type and run another $(expr) for other elements.
- *
- * @name $.metadata.setType
- *
- * @example <p id="one" class="some_class {item_id: 1, item_label: 'Label'}">This is a p</p>
- * @before $.metadata.setType("class")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from the class attribute
- *
- * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p>
- * @before $.metadata.setType("attr", "data")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from a "data" attribute
- *
- * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p>
- * @before $.metadata.setType("elem", "script")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from a nested script element
- *
- * @example <p id="one" class="some_class" data-item_id="1" data-item_label="Label">This is a p</p>
- * @before $.metadata.setType("html5")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from a series of data-* attributes
- *
- * @param String type The encoding type
- * @param String name The name of the attribute to be used to get metadata (optional)
- * @cat Plugins/Metadata
- * @descr Sets the type of encoding to be used when loading metadata for the first time
- * @type undefined
- * @see metadata()
- */
-
-(function($) {
-
-$.extend({
- metadata : {
- defaults : {
- type: 'class',
- name: 'metadata',
- cre: /({.*})/,
- single: 'metadata'
- },
- setType: function( type, name ){
- this.defaults.type = type;
- this.defaults.name = name;
- },
- get: function( elem, opts ){
- var settings = $.extend({},this.defaults,opts);
- // check for empty string in single property
- if ( !settings.single.length ) settings.single = 'metadata';
-
- var data = $.data(elem, settings.single);
- // returned cached data if it already exists
- if ( data ) return data;
-
- data = "{}";
-
- var getData = function(data) {
- if(typeof data != "string") return data;
-
- if( data.indexOf('{') < 0 ) {
- data = eval("(" + data + ")");
- }
- }
-
- var getObject = function(data) {
- if(typeof data != "string") return data;
-
- data = eval("(" + data + ")");
- return data;
- }
-
- if ( settings.type == "html5" ) {
- var object = {};
- $( elem.attributes ).each(function() {
- var name = this.nodeName;
- if(name.match(/^data-/)) name = name.replace(/^data-/, '');
- else return true;
- object[name] = getObject(this.nodeValue);
- });
- } else {
- if ( settings.type == "class" ) {
- var m = settings.cre.exec( elem.className );
- if ( m )
- data = m[1];
- } else if ( settings.type == "elem" ) {
- if( !elem.getElementsByTagName ) return;
- var e = elem.getElementsByTagName(settings.name);
- if ( e.length )
- data = $.trim(e[0].innerHTML);
- } else if ( elem.getAttribute != undefined ) {
- var attr = elem.getAttribute( settings.name );
- if ( attr )
- data = attr;
- }
- object = getObject(data.indexOf("{") < 0 ? "{" + data + "}" : data);
- }
-
- $.data( elem, settings.single, object );
- return object;
- }
- }
-});
-
-/**
- * Returns the metadata object for the first member of the jQuery object.
- *
- * @name metadata
- * @descr Returns element's metadata object
- * @param Object opts An object contianing settings to override the defaults
- * @type jQuery
- * @cat Plugins/Metadata
- */
-$.fn.metadata = function( opts ){
- return $.metadata.get( this[0], opts );
-};
-
-})(jQuery); \ No newline at end of file
diff --git a/js/video.js b/js/video.js
index 0a9711a..4a23b53 100644
--- a/js/video.js
+++ b/js/video.js
@@ -4,79 +4,81 @@
* Adds some show/hide to the admin form to make the UXP easier.
*
*/
+(function($){
-$(document).ready(function() {
- //lets see if we have any jmedia movies
- if($.fn.media) {
- $('.jmedia').media();
- }
+ $(document).ready(function() {
+ //lets see if we have any jmedia movies
+ if($.fn.media) {
+ $('.jmedia').media();
+ }
- video_hide_all_options();
- $("input[name='video_convertor']").change(function() {
video_hide_all_options();
- });
+ $("input[name='video_convertor']").change(function() {
+ video_hide_all_options();
+ });
- // change metadata options
- video_hide_all__metadata_options();
- $("input[name='video_metadata']").change(function() {
+ // change metadata options
video_hide_all__metadata_options();
- });
+ $("input[name='video_metadata']").change(function() {
+ video_hide_all__metadata_options();
+ });
- // change metadata options
- video_hide_all__filesystem_options();
- $("input[name='video_filesystem']").change(function() {
+ // change metadata options
video_hide_all__filesystem_options();
- });
+ $("input[name='video_filesystem']").change(function() {
+ video_hide_all__filesystem_options();
+ });
- $('.video_select').each(function() {
- var ext = $(this).attr('rel');
- $('select', this).change(function() {
- if($(this).val() == 'video_play_flv') {
+ $('.video_select').each(function() {
+ var ext = $(this).attr('rel');
+ $('select', this).change(function() {
+ if($(this).val() == 'video_play_flv') {
+ $('#flv_player_'+ext).show();
+ } else {
+ $('#flv_player_'+ext).hide();
+ }
+ });
+ if($('select', this).val() == 'video_play_flv') {
$('#flv_player_'+ext).show();
- } else {
- $('#flv_player_'+ext).hide();
}
});
- if($('select', this).val() == 'video_play_flv') {
- $('#flv_player_'+ext).show();
- }
- });
- if(Drupal.settings.video) {
- $.fn.media.defaults.flvPlayer = Drupal.settings.video.flvplayer;
+ if(Drupal.settings.video) {
+ $.fn.media.defaults.flvPlayer = Drupal.settings.video.flvplayer;
- }
+ }
- //lets setup our colorbox videos
- $('.video-box').each(function() {
- var url = $(this).attr('href');
- var data = $(this).metadata();
- var width = data.width;
- var height= data.height;
- var player = Drupal.settings.video.player; //player can be either jwplayer or flowplayer.
- $(this).colorbox({
- html: '<a id="video-overlay" href="'+url+'" style="height:'+height+'; width:'+width+'; display: block;"></a>',
- onComplete:function() {
- if(player == 'flowplayer') {
- flowplayer("video-overlay", Drupal.settings.video.flvplayer, {
- clip: {
- autoPlay: Drupal.settings.video.autoplay,
- autoBuffering: Drupal.settings.video.autobuffer
- }
- });
- } else {
- $('#video-overlay').media({
- flashvars: {
- autostart: Drupal.settings.video.autoplay
+ //lets setup our colorbox videos
+ $('.video-box').each(function() {
+ var url = $(this).attr('href');
+ var data = $(this).metadata();
+ var width = data.width;
+ var height= data.height;
+ var player = Drupal.settings.video.player; //player can be either jwplayer or flowplayer.
+ $(this).colorbox({
+ html: '<a id="video-overlay" href="'+url+'" style="height:'+height+'; width:'+width+'; display: block;"></a>',
+ onComplete:function() {
+ if(player == 'flowplayer') {
+ flowplayer("video-overlay", Drupal.settings.video.flvplayer, {
+ clip: {
+ autoPlay: Drupal.settings.video.autoplay,
+ autoBuffering: Drupal.settings.video.autobuffer
+ }
+ });
+ } else {
+ $('#video-overlay').media({
+ flashvars: {
+ autostart: Drupal.settings.video.autoplay
},
- width:width,
- height:height
- });
+ width:width,
+ height:height
+ });
+ }
}
- }
+ });
});
});
-});
+})(jQuery);
function video_hide_all_options() {
$("input[name='video_convertor']").each(function() {
diff --git a/video.field.inc b/video.field.inc
index a342bc4..bb4e33f 100644
--- a/video.field.inc
+++ b/video.field.inc
@@ -251,7 +251,7 @@ function video_field_widget_process($element, &$form_state, $form) {
$instance = field_widget_instance($element, $form_state);
$settings = $field['settings'];
$element['#theme'] = 'video_widget';
- $element['#attached']['css'][] = drupal_get_path('module', 'video') . '/css/video.css';
+// $element['#attached']['css'][] = drupal_get_path('module', 'video') . '/css/video.css';
$element['preview'] = array();
// preview the video thumbnail
// if (isset($element['preview']) && $element['#value']['fid'] != 0) {
diff --git a/video.module b/video.module
index 92a362d..0a0586c 100644
--- a/video.module
+++ b/video.module
@@ -46,7 +46,6 @@ function video_permission() {
return $perms;
}
-
/**
* Implementation of hook_theme().
*/
@@ -115,22 +114,6 @@ function video_theme() {
'variables' => array('video' => NULL, 'node' => NULL),
'file' => 'video_formatter.inc'
);
-
- //setup our imagecache presets
- if (module_exists('imagecache')) {
- //we need formatters for each of our thumbnails.
- //@todo create a function to check for our colorbox module and only add theme elements that could be used.
- $thumb_types = array('video_nodelink'); //array('video_colorbox', 'video_nodelink');
- foreach ($thumb_types as $types) {
- foreach (imagecache_presets () as $preset) {
- $theme['video_formatter_' . $preset['presetname'] . '__' . $types] = array(
- 'variables' => array('element' => NULL),
- 'function' => 'theme_video_formatter_imagecache',
- 'file' => 'video_formatter.inc'
- );
- }
- }
- }
// @TODO : check is there any other optimal way to do this?
$theme['video_formatter'] = array(
'variables' => array('item' => NULL, 'path' => NULL, 'video_style' => NULL, 'entity' => NULL, 'field' => NULL, 'instance' => NULL),
@@ -144,6 +127,7 @@ function video_theme() {
*/
function video_cron() {
+ module_load_include('inc', 'video', 'includes/conversion');
if (variable_get('video_cron', TRUE)) {
$video_conversion = new video_conversion;
$video_conversion->run_queue();
@@ -188,8 +172,8 @@ function video_thumb_process(&$element, &$form_state) {
$gen_fail = FALSE;
if (isset($element['preview']) && $file['fid'] != 0) {
- $default_thumb = array();
if (in_array($field['settings']['autothumbnail'], array('auto', 'auto_fallback'))) {
+ $default_thumb = array();
$transcoder = new video_transcoder;
if ($thumbs = $transcoder->generate_thumbnails($file)) {
$default_thumb = array_rand($thumbs);
@@ -214,36 +198,36 @@ function video_thumb_process(&$element, &$form_state) {
$gen_fail = TRUE;
}
}
-
+ // if fail creating thumbnails fall back to manual or manual upload
if ((!empty($gen_fail) && $field['settings']['autothumbnail'] == 'auto_fallback') ||
$field['settings']['autothumbnail'] == 'manual_upload') {
-
- $element['video_thumb_file'] = array(
- '#name' => 'files[' . $element['#field_name'] . '_' . $element['#delta'] . '_thumbs]',
- '#type' => 'file',
- '#size' => '40',
- '#title' => !empty($file['video_thumb']) ? t('Replace the video thumbnail') : t('Upload a video thumbnail'),
- '#description' => t('This thumbnail will be uploaded when the node is saved.'),
+ $element['thumbanail'] = array(
+ '#title' => t('Video thumbnail'),
+ '#type' => 'managed_file',
+ '#description' => t('The uploaded image will be used as video thumbnail on this video.'),
+ '#default_value' => !empty($file['thumbanail']) ? $file['thumbanail'] : FALSE,
+ '#upload_location' => file_default_scheme() . '://' . variable_get('video_thumb_path', 'videos/thumbnails') . '/' . $file['fid'],
);
-
+ }
+ // if no thumbnail creation
+ if ($field['settings']['autothumbnail'] == 'no') {
$element['thumbanail'] = array(
'#type' => 'value',
- '#value' => isset($file['thumbanail']) ? $file['thumbanail'] : false,
+ '#value' => NULL,
);
}
-
// Setup our large thumbnail that is on the left.
// @todo Add smaller video preview instead of thumbnail?
if (isset($file['thumbanail']) && !empty($file['thumbanail'])) {
$large_thumb = file_load($file['thumbanail']);
- } elseif (!empty($field['settings']['default_video_thumb'])) {
+ } elseif (!empty($field['settings']['default_video_thumbnail'])) {
$large_thumb = file_load($field['settings']['default_video_thumbnail']);
} else {
- $large_thumb = file_load($default_thumb);
+// $large_thumb = file_load($default_thumb);
}
-// print_r($field['settings']['default_video_thumbnail']);
+// print_r($field['settings']);
// $default_thumbnail = file_load($field['settings']['default_video_thumbnail']);
- // @todo Integrate the thumbnails with imagecache.
+ // @todo Add video player
if (!empty($large_thumb))
$element['preview']['#suffix'] = '<div class="video_large_thumbnail-' . $delta . '">' . theme('image_style', array('style_name' => $field['settings']['preview_video_thumb_style'], 'path' => $large_thumb->uri)) . '</div>';
}
@@ -737,7 +721,7 @@ function video_default_field_settings($settings) {
$thumb_options = array(
'auto' => 'Automatically generate thumbnails',
- 'auto_fallback' => 'Automatically generate thumbnails, with fallback to manual upload',
+ 'auto_fallback' => 'Automatically generate thumbnails, with fallback to manual upload if fail',
'manual_upload' => 'Manually upload a thumbnail',
'no' => 'Don\'t create thumbnail',
);