Mercurial > hg > cmmr2012-drupal-site
diff core/modules/ckeditor/src/CKEditorPluginButtonsInterface.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/ckeditor/src/CKEditorPluginButtonsInterface.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,58 @@ +<?php + +namespace Drupal\ckeditor; + +/** + * 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. + * + * @see \Drupal\ckeditor\CKEditorPluginInterface + * @see \Drupal\ckeditor\CKEditorPluginContextualInterface + * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface + * @see \Drupal\ckeditor\CKEditorPluginCssInterface + * @see \Drupal\ckeditor\CKEditorPluginBase + * @see \Drupal\ckeditor\CKEditorPluginManager + * @see \Drupal\ckeditor\Annotation\CKEditorPlugin + * @see plugin_api + */ +interface CKEditorPluginButtonsInterface extends CKEditorPluginInterface { + + /** + * 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 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. + */ + public function getButtons(); + +}