You are here

class BidiCKEditorButton in CKEditor BiDi Buttons 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/CKEditorPlugin/BidiCKEditorButton.php \Drupal\ckeditor_bidi\Plugin\CKEditorPlugin\BidiCKEditorButton
  2. 3.x src/Plugin/CKEditorPlugin/BidiCKEditorButton.php \Drupal\ckeditor_bidi\Plugin\CKEditorPlugin\BidiCKEditorButton

Defines the "bidi" plugin.

NOTE: The plugin ID ('id' key) corresponds to the CKEditor plugin name. It is the first argument of the CKEDITOR.plugins.add() function in the plugin.js file.

Plugin annotation


@CKEditorPlugin(
  id = "bidi",
  label = @Translation("Bidi CKEditor Buttons")
)

Hierarchy

Expanded class hierarchy of BidiCKEditorButton

File

src/Plugin/CKEditorPlugin/BidiCKEditorButton.php, line 20

Namespace

Drupal\ckeditor_bidi\Plugin\CKEditorPlugin
View source
class BidiCKEditorButton extends CKEditorPluginBase {

  /**
   * Implements CKEditorPluginInterface::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 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.
   *
   *   NOTE: The keys of the returned array corresponds to the CKEditor button
   *   names. They are the first argument of the editor.ui.addButton() or
   *   editor.ui.addRichCombo() functions in the plugin.js file.
   */
  public function getButtons() {

    // Make sure that the path to the image matches the file structure of
    // the CKEditor plugin you are implementing.
    $path = drupal_get_path('module', 'ckeditor_bidi') . '/js/plugins/bidi';
    return [
      'BidiLtr' => [
        'label' => $this
          ->t('Text direction from left to right'),
        'image' => $path . '/icons/bidiltr.png',
      ],
      'BidiRtl' => [
        'label' => $this
          ->t('Text direction from right to left'),
        'image' => $path . '/icons/bidirtl.png',
      ],
    ];
  }

  /**
   * Implements CKEditorPluginInterface::getFile().
   *
   * 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
   * @code
   * $settings = $editor->getSettings();
   * $plugin_specific_settings = $settings['plugins'][$plugin_id];
   * @endcode
   *
   * @return array
   *   A keyed array, whose keys will end up as keys under CKEDITOR.config.
   */
  public function getFile() {
    return drupal_get_path('module', 'ckeditor_bidi') . '/js/plugins/bidi/plugin.js';
  }

  /**
   * Implements CKEditorPluginInterface::isInternal().
   *
   * Indicates if this plugin is part of the optimized CKEditor build.
   *
   * Plugins marked as internal are implicitly loaded as part of CKEditor.
   *
   * @return bool
   *   The value.
   */
  public function isInternal() {
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  public function getDependencies(Editor $editor) {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function getLibraries(Editor $editor) {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function getConfig(Editor $editor) {
    return [];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BidiCKEditorButton::getButtons public function Implements CKEditorPluginInterface::getButtons(). Overrides CKEditorPluginButtonsInterface::getButtons
BidiCKEditorButton::getConfig public function Returns the additions to CKEDITOR.config for a specific CKEditor instance. Overrides CKEditorPluginInterface::getConfig
BidiCKEditorButton::getDependencies public function Returns a list of plugins this plugin requires. Overrides CKEditorPluginBase::getDependencies
BidiCKEditorButton::getFile public function Implements CKEditorPluginInterface::getFile(). Overrides CKEditorPluginInterface::getFile
BidiCKEditorButton::getLibraries public function Returns a list of libraries this plugin requires. Overrides CKEditorPluginBase::getLibraries
BidiCKEditorButton::isInternal public function Implements CKEditorPluginInterface::isInternal(). Overrides CKEditorPluginBase::isInternal
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.