You are here

public function CodeMirror::getConfig in CKEditor CodeMirror 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/CKEditorPlugin/CodeMirror.php \Drupal\ckeditor_codemirror\Plugin\CKEditorPlugin\CodeMirror::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

src/Plugin/CKEditorPlugin/CodeMirror.php, line 73

Class

CodeMirror
Defines the "CodeMirror" plugin.

Namespace

Drupal\ckeditor_codemirror\Plugin\CKEditorPlugin

Code

public function getConfig(Editor $editor) {
  $settings = $editor
    ->getSettings()['plugins']['codemirror'];
  $config = [
    'codemirror' => [
      'enable' => isset($settings['enable']) ? $settings['enable'] : FALSE,
      'mode' => isset($settings['mode']) ? $settings['mode'] : 'htmlmixed',
      'theme' => isset($settings['theme']) ? $settings['theme'] : 'default',
    ],
    'startupMode' => isset($settings['startupMode']) ? $settings['startupMode'] : 'wysiwyg',
  ];
  foreach ($this
    ->options() as $option => $description) {
    $config['codemirror'][$option] = isset($settings['options'][$option]) ? $settings['options'][$option] : TRUE;
  }
  return $config;
}