diff --git a/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php b/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php index f84054c..9fd1e4d 100644 --- a/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php +++ b/core/modules/ckeditor/src/Plugin/Editor/CKEditor.php @@ -191,12 +191,18 @@ public function settingsForm(array $form, FormStateInterface $form_state, Editor // settings to be updated accordingly. // Get a list of all external plugins and their corresponding files. $plugins = array_keys($this->ckeditorPluginManager->getDefinitions()); + // Get the required asset libraries for all CKEditor plugins. + $libraries = array( + 'ckeditor/drupal.ckeditor', + ); $all_external_plugins = array(); foreach ($plugins as $plugin_id) { $plugin = $this->ckeditorPluginManager->createInstance($plugin_id); if (!$plugin->isInternal()) { $all_external_plugins[$plugin_id] = $plugin->getFile(); } + $additional_libraries = array_diff($plugin->getLibraries($editor), $libraries); + $libraries = array_merge($libraries, $additional_libraries); } // Get a list of all buttons that are provided by all plugins. $all_buttons = array_reduce($this->ckeditorPluginManager->getButtons(), function($result, $item) { @@ -229,6 +235,7 @@ public function settingsForm(array $form, FormStateInterface $form_state, Editor $form['hidden_ckeditor'] = array( '#markup' => '', '#attached' => array( + 'library' => $libraries, 'drupalSettings' => ['ckeditor' => ['hiddenCKEditorConfig' => $config]], ), );