CKEditor5
class CKEditor5 extends EditorBase implements ContainerFactoryPluginInterface (View source)
| internal | Plugin classes are internal. |
Defines a CKEditor 5-based text editor for Drupal.
Traits
Provides a trait for checking configuration schema.
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Provides a trait for the messenger service.
Constants
| DERIVATIVE_SEPARATOR |
A string which is used to separate base plugin IDs from the derivative ID. |
Properties
| protected string | $pluginId | The plugin_id. |
from PluginBase |
| protected array | $pluginDefinition | The plugin implementation definition. |
from PluginBase |
| protected array | $configuration | Configuration information passed into the plugin. |
from PluginBase |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected MessengerInterface | $messenger | The messenger. |
from MessengerTrait |
| protected Element | $schema | The config schema wrapper object for the configuration object under test. |
from SchemaCheckTrait |
| protected string | $configName | The configuration object name under test. |
from SchemaCheckTrait |
| protected CKEditor5PluginManagerInterface | $ckeditor5PluginManager | The CKEditor plugin manager. |
|
| protected LanguageManagerInterface | $languageManager | The language manager. |
|
| protected ModuleHandlerInterface | $moduleHandler | The module handler. |
|
| protected SmartDefaultSettings | $smartDefaultSettings | Smart default settings utility. |
|
| protected CacheBackendInterface | $cache | The cache. |
Methods
Constructs a CKEditor5 editor plugin.
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Returns the default settings for this configurable text editor.
Checks the TypedConfigManager has a valid schema for the configuration.
Creates an instance of the plugin.
Validates a Text Editor + Text Format pair.
Form #after_build callback: provides text editor state changes.
Validate callback to inform the user of CKEditor 5 compatibility problems.
Value callback to set the CKEditor 5-generated "allowed_html" value.
Gets the submitted text format config entity from form state.
Gets the eventual text format config entity: from form state + editor.
Creates an ephemeral pair of text editor + text format config entity.
Maps Text Editor config object property paths to form names.
Maps Text Editor + Text Format pair property paths to form names.
Returns a list of language codes supported by CKEditor 5.
Details
__construct(array $configuration, string $plugin_id, mixed $plugin_definition, CKEditor5PluginManagerInterface $ckeditor5_plugin_manager, LanguageManagerInterface $language_manager, ModuleHandlerInterface $module_handler, SmartDefaultSettings $smart_default_settings, CacheBackendInterface $cache)
Constructs a CKEditor5 editor plugin.
string
getPluginId()
Gets the plugin_id of the plugin instance.
string
getBaseId()
Gets the base_plugin_id of the plugin instance.
string|null
getDerivativeId()
Gets the derivative_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isConfigurable()
Determines if the plugin is configurable.
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
setMessenger(MessengerInterface $messenger)
Sets the messenger.
MessengerInterface
messenger()
Gets the messenger.
array
getDefaultSettings()
Returns the default settings for this configurable text editor.
array
buildConfigurationForm(array $form, FormStateInterface $form_state)
Form constructor.
Plugin forms are embedded in other forms. In order to know where the plugin form is located in the parent form, #parents and #array_parents must be known, but these are not available during the initial build phase. In order to have these properties available when building the plugin form's elements, let this method return a form element that has a #process callback and build the rest of the form in the callback. By the time the callback is executed, the element's #parents and #array_parents properties will have been set by the form API. For more documentation on #parents and
array_parents, see \Drupal\Core\Render\Element\FormElement.
validateConfigurationForm(array $form, FormStateInterface $form_state)
Form validation handler.
submitConfigurationForm(array $form, FormStateInterface $form_state)
Form submission handler.
array|bool
checkConfigSchema(TypedConfigManagerInterface $typed_config, string $config_name, array $config_data)
Checks the TypedConfigManager has a valid schema for the configuration.
protected array
checkValue(string $key, mixed $value)
Helper method to check data type.
static ContainerFactoryPluginInterface
create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)
Creates an instance of the plugin.
static ConstraintViolationListInterface
validatePair(EditorInterface $text_editor, FilterFormatInterface $text_format, bool $all_compatibility_problems = TRUE)
Validates a Text Editor + Text Format pair.
Drupal is designed to only verify schema conformity (and validation) of individual config entities. The Text Editor module layers a tightly coupled Editor entity on top of the Filter module's FilterFormat config entity. This inextricable coupling is clearly visible in EditorInterface: \Drupal\editor\EditorInterface::getFilterFormat(). They are always paired. Because not every text editor is guaranteed to be compatible with every text format, the pair must be validated.
static array
assessActiveTextEditorAfterBuild(array $element, FormStateInterface $form_state)
Form #after_build callback: provides text editor state changes.
Updates the internal $this->entity object with submitted values when the form is being rebuilt (e.g. submitted via AJAX), so that subsequent processing (e.g. AJAX callbacks) can rely on it.
static void
validateSwitchingToCKEditor5(array $form, FormStateInterface $form_state)
Validate callback to inform the user of CKEditor 5 compatibility problems.
static string
getGeneratedAllowedHtmlValue(array $element, mixed $input, FormStateInterface $form_state)
Value callback to set the CKEditor 5-generated "allowed_html" value.
Used to set the value of filter_html's "allowed_html" form item if the form
has been validated and hence ckeditor5_validated_pair is available
in form state. This allows setting a guaranteed to be valid value.
ckeditor5_validated_pair can be set from two places:
- When switching to CKEditor 5, this is populated by CKEditor5::buildConfigurationForm().
- When making filter or editor settings changes, it is populated by CKEditor5::validateConfigurationForm().
static protected FilterFormatInterface
getSubmittedFilterFormat(FormStateInterface $filter_format_form_state)
Gets the submitted text format config entity from form state.
Needed for validation.
protected EditorInterface
getEventualEditorWithPrimedFilterFormat(SubformStateInterface $editor_form_state, EditorInterface $submitted_editor)
Gets the eventual text format config entity: from form state + editor.
Needed for validation.
static protected EditorInterface
createEphemeralPairedEditor(EditorInterface $editor, FilterFormatInterface $filter_format)
Creates an ephemeral pair of text editor + text format config entity.
Clones the given text editor config entity object and then overwrites its $filterFormat property, to prevent loading the text format config entity from entity storage in calls to Editor::hasAssociatedFilterFormat() and Editor::getFilterFormat(). This is necessary to be able to evaluate unsaved text editor and format config entities:
- for assessing which CKEditor 5 plugins are enabled and whose settings forms to show
- for validating them.
static protected string
mapViolationPropertyPathsToFormNames(string $property_path, array $subform)
Maps Text Editor config object property paths to form names.
static protected string
mapPairViolationPropertyPathsToFormNames(string $property_path, array $form)
Maps Text Editor + Text Format pair property paths to form names.
array
getJSSettings(Editor $editor)
Returns JavaScript settings to be attached.
Most text editors use JavaScript to provide a WYSIWYG or toolbar on the client-side interface. This method can be used to convert internal settings of the text editor into JavaScript variables that will be accessible when the text editor is loaded.
array
getLibraries(Editor $editor)
Returns libraries to be attached.
Because this is a method, plugins can dynamically choose to attach a different library for different configurations, instead of being forced to always use the same method.
protected array
getLangcodes()
Returns a list of language codes supported by CKEditor 5.