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;
}