public function CustomConfig::getConfig in CKEditor custom config 8
Same name and namespace in other branches
- 8.3 src/Plugin/CKEditorPlugin/CustomConfig.php \Drupal\ckeditor_config\Plugin\CKEditorPlugin\CustomConfig::getConfig()
- 8.2 src/Plugin/CKEditorPlugin/CustomConfig.php \Drupal\ckeditor_config\Plugin\CKEditorPlugin\CustomConfig::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 Internal::getConfig
File
- src/Plugin/ CKEditorPlugin/ CustomConfig.php, line 21 
Class
- CustomConfig
- Allow custom config settings.
Namespace
Drupal\ckeditor_config\Plugin\CKEditorPluginCode
public function getConfig(Editor $editor) {
  // Get default config.
  $config = parent::getConfig($editor);
  // Parse and implement the custom config.
  /** @var \Drupal\Core\Config\ConfigFactory $configFactory */
  $configFactory = \Drupal::service('config.factory');
  $configForm = $configFactory
    ->get('ckeditor_config.config_form');
  $customConfig = $configForm
    ->get('config');
  if (!empty($customConfig)) {
    // Separate custom config textarea to each row.
    $configArray = explode("\r\n", $customConfig);
    if (is_array($configArray)) {
      foreach ($configArray as $configRow) {
        $configParts = explode('=', $configRow);
        if (count($configParts) == 2) {
          // Prepare value (remove " and ').
          $value = trim($configParts[1]);
          $value = str_replace('"', '', $value);
          $value = str_replace("'", '', $value);
          // Convert boolean values to real boolean.
          if (strtolower($value) == 'true' || $value == 'false') {
            $value = (bool) $value;
          }
          // Append or override the default config.
          $config[trim($configParts[0])] = $value;
        }
      }
    }
  }
  // Return modified config.
  return $config;
}