You are here

public function DrupalSpecialChars::getConfig in CKEditor Special Characters 8

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/DrupalSpecialChars.php, line 96

Class

DrupalSpecialChars
Defines the "specialChars" plugin.

Namespace

Drupal\ckeditor_specialchars\Plugin\CKEditorPlugin

Code

public function getConfig(Editor $editor) {

  // Defaults.
  $config = [
    'characters' => '',
    'replace' => FALSE,
  ];
  $settings = $editor
    ->getSettings();
  if (isset($settings['plugins']['specialchars'])) {
    $config = $settings['plugins']['specialchars'];
  }
  $characters = explode("\n", $config['characters']);
  $characters = array_map('trim', $characters);
  $characters = array_filter($characters, 'strlen');

  // Not replace = append.
  if (!$config['replace']) {
    $characters = array_merge($this->defaultCharacters, $characters);
  }
  return [
    'specialChars' => $characters,
  ];
}