69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
|
|
// Backup $ and reset it to jQuery.
|
|
Drupal.wysiwyg._openwysiwyg = $;
|
|
$ = jQuery;
|
|
|
|
// Wrap openWYSIWYG's methods to temporarily use its version of $.
|
|
jQuery.each(WYSIWYG, function (key, value) {
|
|
if (jQuery.isFunction(value)) {
|
|
WYSIWYG[key] = function () {
|
|
var old$ = $;
|
|
$ = Drupal.wysiwyg._openwysiwyg;
|
|
var result = value.apply(this, arguments);
|
|
$ = old$;
|
|
return result;
|
|
};
|
|
}
|
|
});
|
|
|
|
// Override editor functions.
|
|
WYSIWYG.getEditor = function (n) {
|
|
return Drupal.wysiwyg._openwysiwyg("wysiwyg" + n);
|
|
};
|
|
|
|
(function($) {
|
|
|
|
/**
|
|
* Attach this editor to a target element.
|
|
*/
|
|
Drupal.wysiwyg.editor.attach.openwysiwyg = function(context, params, settings) {
|
|
// Initialize settings.
|
|
settings.ImagesDir = settings.path + 'images/';
|
|
settings.PopupsDir = settings.path + 'popups/';
|
|
settings.CSSFile = settings.path + 'styles/wysiwyg.css';
|
|
//settings.DropDowns = [];
|
|
var config = new WYSIWYG.Settings();
|
|
for (var setting in settings) {
|
|
config[setting] = settings[setting];
|
|
}
|
|
// Attach editor.
|
|
WYSIWYG.setSettings(params.field, config);
|
|
WYSIWYG_Core.includeCSS(WYSIWYG.config[params.field].CSSFile);
|
|
WYSIWYG._generate(params.field, config);
|
|
};
|
|
|
|
/**
|
|
* Detach a single or all editors.
|
|
*/
|
|
Drupal.wysiwyg.editor.detach.openwysiwyg = function(context, params) {
|
|
if (typeof params != 'undefined') {
|
|
var instance = WYSIWYG.config[params.field];
|
|
if (typeof instance != 'undefined') {
|
|
WYSIWYG.updateTextArea(params.field);
|
|
jQuery('#wysiwyg_div_' + params.field).remove();
|
|
delete instance;
|
|
}
|
|
jQuery('#' + params.field).show();
|
|
}
|
|
else {
|
|
jQuery.each(WYSIWYG.config, function(field) {
|
|
WYSIWYG.updateTextArea(field);
|
|
jQuery('#wysiwyg_div_' + field).remove();
|
|
delete this;
|
|
jQuery('#' + field).show();
|
|
});
|
|
}
|
|
};
|
|
|
|
})(jQuery);
|