includes/clientside/tinymce/plugins/media/editor_plugin_src.js
changeset 395 fa4c5ecb7c9a
parent 335 67bd3121a12e
child 459 31c23016ab62
equal deleted inserted replaced
394:fbfdcea634a7 395:fa4c5ecb7c9a
     1 /**
     1 /**
     2  * $Id: editor_plugin_src.js 490 2007-12-11 21:45:33Z spocke $
     2  * $Id: editor_plugin_src.js 561 2008-01-23 15:18:19Z spocke $
     3  *
     3  *
     4  * @author Moxiecode
     4  * @author Moxiecode
     5  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
     5  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
     6  */
     6  */
     7 
     7 
     8 (function() {
     8 (function() {
     9 	var each = tinymce.each;
     9 	var each = tinymce.each;
    10 
    10 
    21 
    21 
    22 			// Register commands
    22 			// Register commands
    23 			ed.addCommand('mceMedia', function() {
    23 			ed.addCommand('mceMedia', function() {
    24 				ed.windowManager.open({
    24 				ed.windowManager.open({
    25 					file : url + '/media.htm',
    25 					file : url + '/media.htm',
    26 					width : 430 + ed.getLang('media.delta_width', 0),
    26 					width : 430 + parseInt(ed.getLang('media.delta_width', 0)),
    27 					height : 470 + ed.getLang('media.delta_height', 0),
    27 					height : 470 + parseInt(ed.getLang('media.delta_height', 0)),
    28 					inline : 1
    28 					inline : 1
    29 				}, {
    29 				}, {
    30 					plugin_url : url
    30 					plugin_url : url
    31 				});
    31 				});
    32 			});
    32 			});
    79 					var o = eval("({" + c + "})");
    79 					var o = eval("({" + 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, '<div class="mceItemObject" $1>');
    84 				h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');
    85 				h = h.replace(/<embed([^>]*)>/gi, '<div class="mceItemEmbed" $1>');
    85 				h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');
    86 				h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</div>');
    86 				h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');
    87 				h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<div ' + b.replace(/value=/g, '_value=') + ' class="mceItemParam"></div>'});
    87 				h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/g, '_value=') + ' class="mceItemParam"></span>'});
    88 				h = h.replace(/\/ class=\"mceItemParam\"><\/div>/gi, 'class="mceItemParam"></div>');
    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 
    93 			ed.onSetContent.add(function() {
    93 			ed.onSetContent.add(function() {
    94 				t._divsToImgs(ed.getBody());
    94 				t._spansToImgs(ed.getBody());
    95 			});
    95 			});
    96 
    96 
    97 			ed.onPreProcess.add(function(ed, o) {
    97 			ed.onPreProcess.add(function(ed, o) {
    98 				var dom = ed.dom;
    98 				var dom = ed.dom;
    99 
    99 
   100 				if (o.set) {
   100 				if (o.set) {
   101 					t._divsToImgs(o.node);
   101 					t._spansToImgs(o.node);
   102 
   102 
   103 					each(dom.select('IMG', o.node), function(n) {
   103 					each(dom.select('IMG', o.node), function(n) {
   104 						var p;
   104 						var p;
   105 
   105 
   106 						if (isMediaElm(n)) {
   106 						if (isMediaElm(n)) {
   209 			var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);
   209 			var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);
   210 
   210 
   211 			p.width = o.width = dom.getAttrib(n, 'width') || 100;
   211 			p.width = o.width = dom.getAttrib(n, 'width') || 100;
   212 			p.height = o.height = dom.getAttrib(n, 'height') || 100;
   212 			p.height = o.height = dom.getAttrib(n, 'height') || 100;
   213 
   213 
   214 			ob = dom.create('div', {
   214 			ob = dom.create('span', {
   215 				mce_name : 'object',
   215 				mce_name : 'object',
   216 				classid : "clsid:" + o.classid,
   216 				classid : "clsid:" + o.classid,
   217 				codebase : o.codebase,
   217 				codebase : o.codebase,
   218 				width : o.width,
   218 				width : o.width,
   219 				height : o.height
   219 				height : o.height
   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 (v && !/^(width|height|codebase|classid)$/.test(k))
   227 					dom.add(ob, 'div', {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, 'div', 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 
   232 			return ob;
   232 			return ob;
   233 		},
   233 		},
   234 
   234 
   235 		_divsToImgs : function(p) {
   235 		_spansToImgs : function(p) {
   236 			var t = this, dom = t.editor.dom, im, ci;
   236 			var t = this, dom = t.editor.dom, im, ci;
   237 
   237 
   238 			each(dom.select('div', p), function(n) {
   238 			each(dom.select('span', p), function(n) {
   239 				// Convert object into image
   239 				// Convert object into image
   240 				if (dom.getAttrib(n, 'class') == 'mceItemObject') {
   240 				if (dom.getAttrib(n, 'class') == 'mceItemObject') {
   241 					ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');
   241 					ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');
   242 
   242 
   243 					switch (ci) {
   243 					switch (ci) {
   288 				if (v)
   288 				if (v)
   289 					pa[v] = v;
   289 					pa[v] = v;
   290 			});
   290 			});
   291 
   291 
   292 			// Add optional parameters
   292 			// Add optional parameters
   293 			each(dom.select('div', n), function(n) {
   293 			each(dom.select('span', n), function(n) {
   294 				if (dom.hasClass(n, 'mceItemParam'))
   294 				if (dom.hasClass(n, 'mceItemParam'))
   295 					pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');
   295 					pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');
   296 			});
   296 			});
   297 
   297 
   298 			// Use src not movie
   298 			// Use src not movie