function Internal::getConfig

Same name and namespace in other branches
  1. 8.9.x 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.
    [
        $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) && ($format_string = $this->generateFormatTagsSetting($editor))) {
        $config['format_tags'] = $format_string;
    }
    return $config;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.