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')) |