class CKEditorPluginBase

Same name in other branches
  1. 8.9.x core/modules/ckeditor/src/CKEditorPluginBase.php \Drupal\ckeditor\CKEditorPluginBase

Defines a base CKEditor plugin implementation.

No other CKEditor plugins can be internal, unless a different CKEditor build than the one provided by Drupal core is used. Most CKEditor plugins don't need to provide additional settings forms.

This base class assumes that your plugin has buttons that you want to be enabled through the toolbar builder UI. It is still possible to also implement the CKEditorPluginContextualInterface (for contextual enabling) and CKEditorPluginConfigurableInterface interfaces (for configuring plugin settings).

NOTE: the Drupal plugin ID should correspond to the CKEditor plugin name.

Hierarchy

Expanded class hierarchy of CKEditorPluginBase

See also

\Drupal\ckeditor\CKEditorPluginInterface

\Drupal\ckeditor\CKEditorPluginButtonsInterface

\Drupal\ckeditor\CKEditorPluginContextualInterface

\Drupal\ckeditor\CKEditorPluginConfigurableInterface

\Drupal\ckeditor\CKEditorPluginManager

\Drupal\ckeditor\Annotation\CKEditorPlugin

Plugin API

6 files declare their use of CKEditorPluginBase
DrupalImage.php in core/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImage.php
DrupalLink.php in core/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalLink.php
DrupalMediaLibrary.php in core/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMediaLibrary.php
Internal.php in core/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php
Language.php in core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php

... See full list

File

core/modules/ckeditor/src/CKEditorPluginBase.php, line 32

Namespace

Drupal\ckeditor
View source
abstract class CKEditorPluginBase extends PluginBase implements CKEditorPluginInterface, CKEditorPluginButtonsInterface {
    
    /**
     * The module list service.
     *
     * @var \Drupal\Core\Extension\ModuleExtensionList
     */
    protected $moduleList;
    
    /**
     * Gets the module list service.
     *
     * @return \Drupal\Core\Extension\ModuleExtensionList
     *   The module extension list service.
     */
    protected function getModuleList() : ModuleExtensionList {
        if (!$this->moduleList) {
            $this->moduleList = \Drupal::service('extension.list.module');
        }
        return $this->moduleList;
    }
    
    /**
     * Gets the Drupal-root relative installation directory of a module.
     *
     * @param string $module_name
     *   The machine name of the module.
     *
     * @return string
     *   The module installation directory.
     *
     * @throws \InvalidArgumentException
     *   If there is no extension with the supplied machine name.
     *
     * @see \Drupal\Core\Extension\ExtensionList::getPath()
     */
    protected function getModulePath(string $module_name) : string {
        return $this->getModuleList()
            ->getPath($module_name);
    }
    
    /**
     * {@inheritdoc}
     */
    public function isInternal() {
        return FALSE;
    }
    
    /**
     * {@inheritdoc}
     */
    public function getDependencies(Editor $editor) {
        return [];
    }
    
    /**
     * {@inheritdoc}
     */
    public function getLibraries(Editor $editor) {
        return [];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
CKEditorPluginBase::$moduleList protected property The module list service.
CKEditorPluginBase::getDependencies public function Returns a list of plugins this plugin requires. Overrides CKEditorPluginInterface::getDependencies 1
CKEditorPluginBase::getLibraries public function Returns a list of libraries this plugin requires. Overrides CKEditorPluginInterface::getLibraries 4
CKEditorPluginBase::getModuleList protected function Gets the module list service.
CKEditorPluginBase::getModulePath protected function Gets the Drupal-root relative installation directory of a module.
CKEditorPluginBase::isInternal public function Indicates if this plugin is part of the optimized CKEditor build. Overrides CKEditorPluginInterface::isInternal 4
CKEditorPluginButtonsInterface::getButtons public function Returns the buttons that this plugin provides, along with metadata. 9
CKEditorPluginInterface::getConfig public function Returns the additions to CKEDITOR.config for a specific CKEditor instance. 9
CKEditorPluginInterface::getFile public function Returns the Drupal root-relative file path to the plugin JavaScript file. 9
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 6
PluginInspectionInterface::getPluginId public function Gets the plugin_id of the plugin instance. 2

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.