function CKEditor4To5UpgradePluginManager::validateAndBuildMaps

Same name and namespace in other branches
  1. 10 core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php \Drupal\ckeditor5\Plugin\CKEditor4To5UpgradePluginManager::validateAndBuildMaps()
  2. 11.x core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php \Drupal\ckeditor5\Plugin\CKEditor4To5UpgradePluginManager::validateAndBuildMaps()

Validates plugin definitions: avoids conflicts. Builds maps for later use.

3 calls to CKEditor4To5UpgradePluginManager::validateAndBuildMaps()
CKEditor4To5UpgradePluginManager::computeCKEditor5PluginSubsetConfiguration in core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php
Computes elements subset configuration for CKEditor 5 plugin.
CKEditor4To5UpgradePluginManager::mapCKEditor4SettingsToCKEditor5Configuration in core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php
Maps CKEditor 4 settings to the CKEditor 5 equivalent, if needed.
CKEditor4To5UpgradePluginManager::mapCKEditor4ToolbarButtonToCKEditor5ToolbarItem in core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php
Maps a CKEditor 4 button to the CKEditor 5 equivalent, if it exists.

File

core/modules/ckeditor5/src/Plugin/CKEditor4To5UpgradePluginManager.php, line 68

Class

CKEditor4To5UpgradePluginManager
Provides a CKEditor 4 to 5 upgrade plugin manager.

Namespace

Drupal\ckeditor5\Plugin

Code

protected function validateAndBuildMaps() : void {
    if ($this->cke4ButtonsMap !== NULL) {
        return;
    }
    foreach ($this->getDefinitions() as $upgrade_plugin_id => $definition) {
        // Only one CKEditor4To5Upgrade plugin can define the upgrade path for a
        // CKEditor 4 button.
        if (isset($definition['cke4_buttons'])) {
            assert(Inspector::assertAllStrings($definition['cke4_buttons']));
            foreach ($definition['cke4_buttons'] as $cke4_button_id) {
                if (isset($this->cke4ButtonsMap[$cke4_button_id])) {
                    throw new \OutOfBoundsException(sprintf('The "%s" CKEditor 4 button is already being upgraded by the "%s" CKEditor4To5Upgrade plugin, the "%s" plugin is as well. This conflict needs to be resolved.', $cke4_button_id, $this->cke4ButtonsMap[$cke4_button_id], $upgrade_plugin_id));
                }
                $this->cke4ButtonsMap[$cke4_button_id] = $upgrade_plugin_id;
            }
        }
        // Only one CKEditor4To5Upgrade plugin can define the upgrade path for a
        // CKEditor 4 plugin's settings.
        if (isset($definition['cke4_plugin_settings'])) {
            assert(Inspector::assertAllStrings($definition['cke4_plugin_settings']));
            foreach ($definition['cke4_plugin_settings'] as $cke4_plugin_id) {
                if (isset($this->cke4PluginSettingsMap[$cke4_plugin_id])) {
                    throw new \OutOfBoundsException(sprintf('The "%s" CKEditor 4 plugin\'s settings are already being upgraded by the "%s" CKEditor4To5Upgrade plugin, the "%s" plugin is as well. This conflict needs to be resolved.', $cke4_plugin_id, $this->cke4PluginSettingsMap[$cke4_plugin_id], $upgrade_plugin_id));
                }
                $this->cke4PluginSettingsMap[$cke4_plugin_id] = $upgrade_plugin_id;
            }
        }
        // Only one CKEditor4To5Upgrade plugin can define the upgrade path for a
        // CKEditor 5 plugin's elements subset configuration.
        if (isset($definition['cke5_plugin_elements_subset_configuration'])) {
            assert(Inspector::assertAllStrings($definition['cke5_plugin_elements_subset_configuration']));
            foreach ($definition['cke5_plugin_elements_subset_configuration'] as $cke5_plugin_id) {
                if (isset($this->cke5SubsetConfigurationMap[$cke5_plugin_id])) {
                    throw new \OutOfBoundsException(sprintf('The "%s" CKEditor 5 plugin\'s elements subset configuration is already being computed by the "%s" CKEditor4To5Upgrade plugin, the "%s" plugin is as well. This conflict needs to be resolved.', $cke5_plugin_id, $this->cke5SubsetConfigurationMap[$cke5_plugin_id], $upgrade_plugin_id));
                }
                $this->cke5SubsetConfigurationMap[$cke5_plugin_id] = $upgrade_plugin_id;
            }
        }
    }
}

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