CKEditorPluginConfigurableInterface
interface CKEditorPluginConfigurableInterface implements CKEditorPluginInterface (View source)
Defines an interface for configurable CKEditor plugins.
This allows a CKEditor plugin to define a settings form. These settings can then be automatically passed on to the corresponding CKEditor instance via CKEditorPluginInterface::getConfig().
Methods
Gets the definition of the plugin implementation.
Indicates if this plugin is part of the optimized CKEditor build.
Returns the Drupal root-relative file path to the plugin JavaScript file.
Returns a settings form to configure this CKEditor plugin.
Details
string
getPluginId()
Gets the plugin_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isInternal()
Indicates if this plugin is part of the optimized CKEditor build.
Plugins marked as internal are implicitly loaded as part of CKEditor.
array
getDependencies(Editor $editor)
Returns a list of plugins this plugin requires.
array
getLibraries(Editor $editor)
Returns a list of libraries this plugin requires.
These libraries will be attached to the text_format element on which the editor is being loaded.
string|false
getFile()
Returns the Drupal root-relative file path to the plugin JavaScript file.
Note: this does not use a Drupal library because this uses CKEditor's API.
array
getConfig(Editor $editor)
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
array
settingsForm(array $form, FormStateInterface $form_state, Editor $editor)
Returns a settings form to configure this CKEditor plugin.
If the plugin's behavior depends on extensive options and/or external data, then the implementing module can choose to provide a separate, global configuration page rather than per-text-editor settings. In that case, this form should provide a link to the separate settings page.