class GlobalAttribute

Same name and namespace in other branches
  1. 10 core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/GlobalAttribute.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\GlobalAttribute
  2. 11.x core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/GlobalAttribute.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\GlobalAttribute

CKEditor 5 Global Attribute for filter_html.

Can be used for adding support for any "global attribute". For example: `<* lang>` to allow the `lang` attribute on all supported tags.

@internal Plugin classes are internal.

Hierarchy

Expanded class hierarchy of GlobalAttribute

See also

https://html.spec.whatwg.org/multipage/dom.html#global-attributes

1 string reference to 'GlobalAttribute'
ckeditor5.ckeditor5.yml in core/modules/ckeditor5/ckeditor5.ckeditor5.yml
core/modules/ckeditor5/ckeditor5.ckeditor5.yml

File

core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/GlobalAttribute.php, line 22

Namespace

Drupal\ckeditor5\Plugin\CKEditor5Plugin
View source
class GlobalAttribute extends CKEditor5PluginDefault {
  
  /**
   * {@inheritdoc}
   */
  public function getDynamicPluginConfig(array $static_plugin_config, EditorInterface $editor) : array {
    // This plugin is only loaded when filter_html is enabled.
    assert($editor->getFilterFormat()
      ->filters()
      ->has('filter_html'));
    $filter_html = $editor->getFilterFormat()
      ->filters('filter_html');
    $restrictions = HTMLRestrictions::fromFilterPluginInstance($filter_html);
    // Determine which tags are allowed by filter_html, excluding the global
    // attribute `*` HTML tag, because that's what we're expanding this to right
    // now.
    $allowed_elements = $restrictions->getAllowedElements();
    unset($allowed_elements['*']);
    $allowed_tags = array_keys($allowed_elements);
    // Update the static plugin configuration: generate a `name` regular
    // expression to match any of the HTML tags supported by filter_html.
    // @see https://ckeditor.com/docs/ckeditor5/latest/features/general-html-support.html#configuration
    $dynamic_plugin_config = $static_plugin_config;
    $dynamic_plugin_config['htmlSupport']['allow'][0]['name']['regexp']['pattern'] = '/^(' . implode('|', $allowed_tags) . ')$/';
    return $dynamic_plugin_config;
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
CKEditor5PluginDefault::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct 2
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 2
DependencySerializationTrait::__wakeup public function #[\ReturnTypeWillChange] 2
GlobalAttribute::getDynamicPluginConfig public function Allows a plugin to modify its static configuration. Overrides CKEditor5PluginDefault::getDynamicPluginConfig
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
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 2
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.
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
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.

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