You are here

public function Internal::getConfig in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal::getConfig()
  2. 10 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal::getConfig()

Returns the additions to CKEDITOR.config for a specific CKEditor instance.

The editor's settings can be retrieved via $editor->getSettings(), but be aware that it may not yet contain plugin-specific settings, because the user may not yet have configured the form. If there are plugin-specific settings (verify with isset()), they can be found at

$settings = $editor
  ->getSettings();
$plugin_specific_settings = $settings['plugins'][$plugin_id];

Parameters

\Drupal\editor\Entity\Editor $editor: A configured text editor object.

Return value

array A keyed array, whose keys will end up as keys under CKEDITOR.config.

Overrides CKEditorPluginInterface::getConfig

File

core/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php, line 101

Class

Internal
Defines the "internal" plugin (i.e. core plugins part of our CKEditor build).

Namespace

Drupal\ckeditor\Plugin\CKEditorPlugin

Code

public function getConfig(Editor $editor) {

  // Reasonable defaults that provide expected basic behavior.
  $config = [
    // Don't load CKEditor's config.js file.
    'customConfig' => '',
    'pasteFromWordPromptCleanup' => TRUE,
    'resize_dir' => 'vertical',
    'justifyClasses' => [
      'text-align-left',
      'text-align-center',
      'text-align-right',
      'text-align-justify',
    ],
    'entities' => FALSE,
    'disableNativeSpellChecker' => FALSE,
  ];

  // Add the allowedContent setting, which ensures CKEditor only allows tags
  // and attributes that are allowed by the text format for this text editor.
  list($config['allowedContent'], $config['disallowedContent']) = $this
    ->generateACFSettings($editor);

  // Add the format_tags setting, if its button is enabled.
  $toolbar_buttons = CKEditorPluginManager::getEnabledButtons($editor);
  if (in_array('Format', $toolbar_buttons)) {
    $config['format_tags'] = $this
      ->generateFormatTagsSetting($editor);
  }
  return $config;
}