function Core::mapCKEditor4SettingsToCKEditor5Configuration

Same name and namespace in other branches
  1. 9 core/modules/ckeditor5/src/Plugin/CKEditor4To5Upgrade/Core.php \Drupal\ckeditor5\Plugin\CKEditor4To5Upgrade\Core::mapCKEditor4SettingsToCKEditor5Configuration()
  2. 11.x core/modules/ckeditor5/src/Plugin/CKEditor4To5Upgrade/Core.php \Drupal\ckeditor5\Plugin\CKEditor4To5Upgrade\Core::mapCKEditor4SettingsToCKEditor5Configuration()

Maps CKEditor 4 settings to the CKEditor 5 equivalent, if needed.

Not every CKEditor 5 plugin has settings; some CKEditor 5 plugins may have settings that the CKEditor 4 equivalent did not and vice versa. Therefore the complete CKEditor 4 settings are provided, and any CKEditor 5 setting can be set.

Parameters

string $cke4_plugin_id: The CKEditor 4 plugin whose settings need to be mapped.

array $cke4_plugin_settings: The settings for this CKEditor 4 plugin.

Return value

array|null NULL if not needed, otherwise an array with a single key-value pair:

  • key: the plugin ID of the equivalent CKEditor 5 plugin
  • value: the equivalent settings

In either case, the button name must be added to the annotation.

Overrides CKEditor4To5UpgradePluginInterface::mapCKEditor4SettingsToCKEditor5Configuration

File

core/modules/ckeditor5/src/Plugin/CKEditor4To5Upgrade/Core.php, line 192

Class

Core
Provides the CKEditor 4 to 5 upgrade for Drupal core's CKEditor plugins.

Namespace

Drupal\ckeditor5\Plugin\CKEditor4To5Upgrade

Code

public function mapCKEditor4SettingsToCKEditor5Configuration(string $cke4_plugin_id, array $cke4_plugin_settings) : ?array {
  switch ($cke4_plugin_id) {
    // @see \Drupal\ckeditor\Plugin\CKEditorPlugin\StylesCombo
    case 'stylescombo':
      if (!isset($cke4_plugin_settings['styles'])) {
        $styles = [];
      }
      else {
        [
          $styles,
        ] = Style::parseStylesFormValue($cke4_plugin_settings['styles']);
      }
      return [
        'ckeditor5_style' => [
          'styles' => $styles,
        ],
      ];
    // @see \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
    case 'language':
      // Identical configuration.
      return [
        'ckeditor5_language' => $cke4_plugin_settings,
      ];
    default:
      throw new \OutOfBoundsException();
  }
}

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