abstract class CKEditorPluginBase in Drupal 10
Same name and namespace in other branches
- 8 core/modules/ckeditor/src/CKEditorPluginBase.php \Drupal\ckeditor\CKEditorPluginBase
- 9 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
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\ckeditor\CKEditorPluginBase implements CKEditorPluginButtonsInterface, CKEditorPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
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
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
File
- core/
modules/ ckeditor/ src/ CKEditorPluginBase.php, line 32
Namespace
Drupal\ckeditorView 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 [];
}
}