Implements \Drupal\editor\Plugin\EditPluginInterface::settingsForm().
Overrides EditorBase::settingsForm
public function settingsForm(array $form, array &$form_state, EditorEntity $editor) {
$module_path = drupal_get_path('module', 'ckeditor');
$manager = drupal_container()
->get('plugin.manager.ckeditor.plugin');
$ckeditor_settings_toolbar = array(
'#theme' => 'ckeditor_settings_toolbar',
'#editor' => $editor,
'#plugins' => $manager
->getButtonsPlugins($editor),
);
$form['toolbar'] = array(
'#type' => 'container',
'#attached' => array(
'library' => array(
array(
'ckeditor',
'drupal.ckeditor.admin',
),
),
'js' => array(
array(
'type' => 'setting',
'data' => array(
'ckeditor' => array(
'toolbarAdmin' => drupal_render($ckeditor_settings_toolbar),
),
),
),
),
),
'#attributes' => array(
'class' => array(
'ckeditor-toolbar-configuration',
),
),
);
$form['toolbar']['buttons'] = array(
'#type' => 'textarea',
'#title' => t('Toolbar buttons'),
'#default_value' => json_encode($editor->settings['toolbar']['buttons']),
'#attributes' => array(
'class' => array(
'ckeditor-toolbar-textarea',
),
),
);
// CKEditor plugin settings, if any.
$form['plugin_settings'] = array(
'#type' => 'vertical_tabs',
);
$manager
->injectPluginSettingsForm($form, $form_state, $editor);
if (count(element_children($form['plugins'])) === 0) {
unset($form['plugins']);
unset($form['plugin_settings']);
}
return $form;
}