silverstripe-framework/thirdparty/tinymce/classes/Developer.js
2009-11-21 02:26:09 +00:00

92 lines
2.4 KiB
JavaScript

/**
* $Id: Developer.js 520 2008-01-07 16:30:32Z spocke $
*
* @author Moxiecode
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
*/
(function() {
var EditorManager = tinymce.EditorManager, each = tinymce.each, DOM = tinymce.DOM;
/**
* This class patches in various development features. This class is only available for the dev version of TinyMCE.
*/
tinymce.create('static tinymce.Developer', {
_piggyBack : function() {
var t = this, em = tinymce.EditorManager, lo = false;
// Makes sure that XML language pack is used instead of JS files
t._runBefore(em, 'init', function(s) {
var par = new tinymce.xml.Parser({async : false}), lng = s.language || "en", i18n = tinymce.EditorManager.i18n, sl = tinymce.ScriptLoader;
if (!s.translate_mode)
return;
if (lo)
return;
lo = true;
// Common language loaded
sl.markDone(tinymce.baseURL + '/langs/' + lng + '.js');
// Theme languages loaded
sl.markDone(tinymce.baseURL + '/themes/simple/langs/' + lng + '.js');
sl.markDone(tinymce.baseURL + '/themes/advanced/langs/' + lng + '.js');
// All plugin packs loaded
each(s.plugins.split(','), function(p) {
sl.markDone(tinymce.baseURL + '/plugins/' + p + '/langs/' + lng + '.js');
});
// Load XML language pack
par.load(tinymce.baseURL + '/langs/' + lng + '.xml', function(doc, ex) {
var c;
if (!doc) {
alert(ex.message);
return;
}
if (doc.documentElement.nodeName == 'parsererror') {
alert('Parse error!!');
return;
}
c = doc.getElementsByTagName('language')[0].getAttribute("code");
each(doc.getElementsByTagName('group'), function(g) {
var gn = g.getAttribute("target"), o = {};
// Build object from XML items
each(g.getElementsByTagName('item'), function(it) {
var itn = it.getAttribute("name");
if (gn == "common")
i18n[c + '.' + itn] = par.getText(it);
else
i18n[c + '.' + gn + "." + itn] = par.getText(it);
});
});
}, {
async : false
});
});
},
_runBefore : function(o, n, f) {
var e = o[n];
o[n] = function() {
var s = f.apply(o, arguments);
if (s !== false)
return e.apply(o, arguments);
};
}
});
tinymce.Developer._piggyBack();
})();