interface CKEditorPluginButtonsInterface implements CKEditorPluginInterface (View source)

Defines an interface for CKEditor plugins with buttons.

This allows a CKEditor plugin to define which buttons it provides, so that users can configure a CKEditor toolbar instance via the toolbar builder UI. If at least one button that this plugin provides is added to the toolbar via the toolbar builder UI, then this plugin will be enabled automatically.

If a CKEditor plugin implements this interface, it can still also implement CKEditorPluginContextualInterface if it wants a button to conditionally be added as well. The downside of conditionally adding buttons is that the user cannot see these buttons in the toolbar builder UI.

Methods

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.

array
getDependencies(Editor $editor)

Returns a list of plugins this plugin requires.

array
getLibraries(Editor $editor)

Returns a list of libraries this plugin requires.

string|false
getFile()

Returns the Drupal root-relative file path to the plugin JavaScript file.

array
getConfig(Editor $editor)

Returns the additions to CKEDITOR.config for a specific CKEditor instance.

array
getButtons()

Returns the buttons that this plugin provides, along with metadata.

Details

string getPluginId()

Gets the plugin_id of the plugin instance.

Return Value

string

The plugin_id of the plugin instance.

array getPluginDefinition()

Gets the definition of the plugin implementation.

Return Value

array

The plugin definition, as returned by the discovery object used by the plugin manager.

bool isInternal()

Indicates if this plugin is part of the optimized CKEditor build.

Plugins marked as internal are implicitly loaded as part of CKEditor.

Return Value

bool

array getDependencies(Editor $editor)

Returns a list of plugins this plugin requires.

Parameters

Editor $editor

A configured text editor object.

Return Value

array

An unindexed array of plugin names this plugin requires. Each plugin is is identified by its annotated ID.

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.

Parameters

Editor $editor

A configured text editor object.

Return Value

array

An array of libraries suitable for usage in a render API #attached property.

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.

Return Value

string|false

The Drupal root-relative path to the file, FALSE if an internal plugin.

See also

https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_resourceManager.html#method-addExternal

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

Parameters

Editor $editor

A configured text editor object.

Return Value

array

A keyed array, whose keys will end up as keys under CKEDITOR.config.

array getButtons()

Returns the buttons that this plugin provides, along with metadata.

The metadata is used by the CKEditor module to generate a visual CKEditor toolbar builder UI.

Return Value

array

An array of buttons that are provided by this plugin. This will only be used in the administrative section for assembling the toolbar. Each button should be keyed by its CKEditor button name (you can look up the button name up in the plugin.js file), and should contain an array of button properties, including:

  • label: A human-readable, translated button name.
  • image: An image for the button to be used in the toolbar.
  • image_rtl: If the image needs to have a right-to-left version, specify an alternative file that will be used in RTL editors.
  • image_alternative: If this button does not render as an image, specify an HTML string representing the contents of this button.
  • image_alternative_rtl: Similar to image_alternative, but a right-to-left version.
  • attributes: An array of HTML attributes which should be added to this button when rendering the button in the administrative section for assembling the toolbar.
  • multiple: Boolean value indicating if this button may be added multiple times to the toolbar. This typically is only applicable for dividers and group indicators.