includes/clientside/tinymce/plugins/media/editor_plugin_src.js
changeset 459 31c23016ab62
parent 395 fa4c5ecb7c9a
child 543 dffcbfbc4e59
equal deleted inserted replaced
458:c433348f3628 459:31c23016ab62
     1 /**
     1 /**
     2  * $Id: editor_plugin_src.js 561 2008-01-23 15:18:19Z spocke $
     2  * $Id: editor_plugin_src.js 615 2008-02-20 23:18:01Z spocke $
     3  *
     3  *
     4  * @author Moxiecode
     4  * @author Moxiecode
     5  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
     5  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
     6  */
     6  */
     7 
     7 
    74 
    74 
    75 			ed.onBeforeSetContent.add(function(ed, o) {
    75 			ed.onBeforeSetContent.add(function(ed, o) {
    76 				var h = o.content;
    76 				var h = o.content;
    77 
    77 
    78 				h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {
    78 				h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {
    79 					var o = eval("({" + c + "})");
    79 					var o = t._parse(c);
    80 
    80 
    81 					return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'
    81 					return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'
    82 				});
    82 				});
    83 
    83 
    84 				h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
    84 				h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
    85 				h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
    85 				h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
    86 				h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');
    86 				h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');
    87 				h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/g, '_value=') + ' class="mceItemParam"></span>'});
    87 				h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});
    88 				h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');
    88 				h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');
    89 
    89 
    90 				o.content = h;
    90 				o.content = h;
    91 			});
    91 			});
    92 
    92 
   221 
   221 
   222 			if (p.src)
   222 			if (p.src)
   223 				p.src = ed.convertURL(p.src, 'src', n);
   223 				p.src = ed.convertURL(p.src, 'src', n);
   224 
   224 
   225 			each (p, function(v, k) {
   225 			each (p, function(v, k) {
   226 				if (v && !/^(width|height|codebase|classid)$/.test(k))
   226 				if (!/^(width|height|codebase|classid)$/.test(k))
   227 					dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});
   227 					dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});
   228 			});
   228 			});
   229 
   229 
   230 			dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));
   230 			dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));
   231 
   231 
   264 							break;
   264 							break;
   265 
   265 
   266 						default:
   266 						default:
   267 							dom.replace(t._createImg('mceItemFlash', n), n);
   267 							dom.replace(t._createImg('mceItemFlash', n), n);
   268 					}
   268 					}
   269 				}
   269 					
       
   270 					return;
       
   271 				}
       
   272 
       
   273 				// Convert embed into image
       
   274 				if (dom.getAttrib(n, 'class') == 'mceItemEmbed') {
       
   275 					switch (dom.getAttrib(n, 'type')) {
       
   276 						case 'application/x-shockwave-flash':
       
   277 							dom.replace(t._createImg('mceItemFlash', n), n);
       
   278 							break;
       
   279 
       
   280 						case 'application/x-director':
       
   281 							dom.replace(t._createImg('mceItemShockWave', n), n);
       
   282 							break;
       
   283 
       
   284 						case 'application/x-mplayer2':
       
   285 							dom.replace(t._createImg('mceItemWindowsMedia', n), n);
       
   286 							break;
       
   287 
       
   288 						case 'video/quicktime':
       
   289 							dom.replace(t._createImg('mceItemQuickTime', n), n);
       
   290 							break;
       
   291 
       
   292 						case 'audio/x-pn-realaudio-plugin':
       
   293 							dom.replace(t._createImg('mceItemRealMedia', n), n);
       
   294 							break;
       
   295 
       
   296 						default:
       
   297 							dom.replace(t._createImg('mceItemFlash', n), n);
       
   298 					}
       
   299 				}			
   270 			});
   300 			});
   271 		},
   301 		},
   272 
   302 
   273 		_createImg : function(cl, n) {
   303 		_createImg : function(cl, n) {
   274 			var im, dom = this.editor.dom, pa = {}, ti = '';
   304 			var im, dom = this.editor.dom, pa = {}, ti = '';
   280 				height : dom.getAttrib(n, 'height') || 100,
   310 				height : dom.getAttrib(n, 'height') || 100,
   281 				'class' : cl
   311 				'class' : cl
   282 			});
   312 			});
   283 
   313 
   284 			// Setup base parameters
   314 			// Setup base parameters
   285 			each(['id', 'name', 'width', 'height', 'bgcolor', 'align'], function(n) {
   315 			each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {
   286 				var v = dom.getAttrib(n, 'align');
   316 				var v = dom.getAttrib(n, na);
   287 
   317 
   288 				if (v)
   318 				if (v)
   289 					pa[v] = v;
   319 					pa[na] = v;
   290 			});
   320 			});
   291 
   321 
   292 			// Add optional parameters
   322 			// Add optional parameters
   293 			each(dom.select('span', n), function(n) {
   323 			each(dom.select('span', n), function(n) {
   294 				if (dom.hasClass(n, 'mceItemParam'))
   324 				if (dom.hasClass(n, 'mceItemParam'))