From 12db17b4abb721b341e95404cb9e7878194153f5 Mon Sep 17 00:00:00 2001 From: Damian Czepierga Date: Wed, 18 Apr 2012 08:45:18 +0200 Subject: [PATCH] [#1537824] by dczepierga: External plugins not work on ckeditor_basic.js loading method --- includes/ckeditor.utils.js | 36 ++++++++++++++++++++++++++++-------- 1 files changed, 28 insertions(+), 8 deletions(-) diff --git a/includes/ckeditor.utils.js b/includes/ckeditor.utils.js index 6712e72..44794cd 100644 --- a/includes/ckeditor.utils.js +++ b/includes/ckeditor.utils.js @@ -94,16 +94,20 @@ window.CKEDITOR_BASEPATH = Drupal.settings.ckeditor.editor_path; } } - textarea_settings.extraPlugins = ''; - if (typeof CKEDITOR.plugins != 'undefined'){ - for (var plugin in textarea_settings['loadPlugins']){ - textarea_settings.extraPlugins += (textarea_settings.extraPlugins) ? ',' + textarea_settings['loadPlugins'][plugin]['name'] : textarea_settings['loadPlugins'][plugin]['name']; - CKEDITOR.plugins.addExternal(textarea_settings['loadPlugins'][plugin]['name'], textarea_settings['loadPlugins'][plugin]['path']); - } - } //remove width 100% from settings because this may cause problems with theme css if (textarea_settings.width == '100%') textarea_settings.width = ''; - Drupal.ckeditorInstance = CKEDITOR.replace(textarea_id, textarea_settings); + + if (CKEDITOR.loadFullCore) { + CKEDITOR.on('loaded', function() { + textarea_settings = Drupal.ckeditorLoadPlugins(textarea_settings); + Drupal.ckeditorInstance = CKEDITOR.replace(textarea_id, textarea_settings); + }); + CKEDITOR.loadFullCore(); + } + else { + textarea_settings = Drupal.ckeditorLoadPlugins(textarea_settings); + Drupal.ckeditorInstance = CKEDITOR.replace(textarea_id, textarea_settings); + } } Drupal.ckeditorOn = function(textarea_id, run_filter) { @@ -167,6 +171,22 @@ window.CKEDITOR_BASEPATH = Drupal.settings.ckeditor.editor_path; $("#" + textarea_id).next(".grippie").css("display", "block"); }; +/** +* Loading selected CKEditor plugins +* +* @param object textarea_settings +*/ + Drupal.ckeditorLoadPlugins = function(textarea_settings) { + textarea_settings.extraPlugins = ''; + if (typeof CKEDITOR.plugins != 'undefined') { + for (var plugin in textarea_settings['loadPlugins']) { + textarea_settings.extraPlugins += (textarea_settings.extraPlugins) ? ',' + textarea_settings['loadPlugins'][plugin]['name'] : textarea_settings['loadPlugins'][plugin]['name']; + CKEDITOR.plugins.addExternal(textarea_settings['loadPlugins'][plugin]['name'], textarea_settings['loadPlugins'][plugin]['path']); + } + } + return textarea_settings; + } + /** * Returns true if CKEDITOR.version >= version */ -- 1.7.9.msysgit.0