public function Internal::getConfig in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal::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 CKEditorPluginInterface::getConfig
File
- core/
modules/ ckeditor/ src/ Plugin/ CKEditorPlugin/ Internal.php, line 95 - Contains \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal.
Class
- Internal
- Defines the "internal" plugin (i.e. core plugins part of our CKEditor build).
Namespace
Drupal\ckeditor\Plugin\CKEditorPluginCode
public function getConfig(Editor $editor) {
// Reasonable defaults that provide expected basic behavior.
$config = array(
'customConfig' => '',
// Don't load CKEditor's config.js file.
'pasteFromWordPromptCleanup' => TRUE,
'resize_dir' => 'vertical',
'justifyClasses' => array(
'text-align-left',
'text-align-center',
'text-align-right',
'text-align-justify',
),
'entities' => FALSE,
);
// Add the allowedContent setting, which ensures CKEditor only allows tags
// and attributes that are allowed by the text format for this text editor.
list($config['allowedContent'], $config['disallowedContent']) = $this
->generateACFSettings($editor);
// Add the format_tags setting, if its button is enabled.
$toolbar_rows = array();
$settings = $editor
->getSettings();
foreach ($settings['toolbar']['rows'] as $row_number => $row) {
$toolbar_rows[] = array_reduce($settings['toolbar']['rows'][$row_number], function (&$result, $button_group) {
return array_merge($result, $button_group['items']);
}, array());
}
$toolbar_buttons = array_unique(NestedArray::mergeDeepArray($toolbar_rows));
if (in_array('Format', $toolbar_buttons)) {
$config['format_tags'] = $this
->generateFormatTagsSetting($editor);
}
return $config;
}