diff -r c72b545f1304 -r 67bd3121a12e includes/clientside/static/dynano.js --- a/includes/clientside/static/dynano.js Wed Dec 26 00:37:26 2007 -0500 +++ b/includes/clientside/static/dynano.js Thu Dec 27 22:09:33 2007 -0500 @@ -86,7 +86,7 @@ return left_offset; } -function DN_switchToMCE() +function DN_switchToMCE(performWikiTransform) { //if ( this.object.dn_is_mce ) // return this; @@ -94,17 +94,38 @@ this.object.id = 'textarea_' + Math.floor(Math.random() * 1000000); if ( !this.object.name ) this.object.name = 'textarea_' + Math.floor(Math.random() * 1000000); - tinyMCE.addMCEControl(this.object, this.object.name, document); + // TinyMCE 2.x + // tinyMCE.addMCEControl(this.object, this.object.name, document); + // TinyMCE 3.x + if ( performWikiTransform ) + { + this.object.value = DN_WikitextToXHTML(this.object.value); + } + tinyMCE.execCommand("mceAddControl", true, this.object.id); this.object.dnIsMCE = 'yes'; return this; } -function DN_destroyMCE() +function DN_destroyMCE(performWikiTransform) { //if ( !this.object.dn_is_mce ) // return this; - if ( this.object.name ) - tinyMCE.removeMCEControl(this.object.name); + if ( this.object.id ) + { + // TinyMCE 2.x + // tinyMCE.removeMCEControl(this.object.name); + // TinyMCE 3.x + var ed = tinyMCE.getInstanceById(this.object.id); + if ( ed ) + { + if ( !tinyMCE.execCommand("mceRemoveEditor", false, this.object.id) ) + alert('could not destroy editor'); + if ( performWikiTransform ) + { + this.object.value = DN_XHTMLToWikitext(this.object.value); + } + } + } this.object.dnIsMCE = 'no'; return this; } @@ -114,8 +135,11 @@ if ( this.object.name ) { var text = this.object.value; - if ( tinyMCE.getInstanceById(this.object.name) ) - text = tinyMCE.getContent(this.object.name); + if ( tinyMCE.get(this.object.id) ) + { + var editor = tinyMCE.get(this.object.id); + text = editor.getContent(); + } return text; } else @@ -124,6 +148,27 @@ } } +// A basic Wikitext to XHTML converter +function DN_WikitextToXHTML(text) +{ + text = text.replace(/^===[\s]*(.+?)[\s]*===$/g, '