Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. GlobalAttribute.php

class 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

  • class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
    • class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
      • class \Drupal\ckeditor5\Plugin\CKEditor5PluginDefault extends \Drupal\Core\Plugin\PluginBase implements \Drupal\ckeditor5\Plugin\CKEditor5PluginInterface
        • class \Drupal\ckeditor5\Plugin\CKEditor5Plugin\GlobalAttribute extends \Drupal\ckeditor5\Plugin\CKEditor5PluginDefault

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 3
GlobalAttribute::getDynamicPluginConfig public function Allows a plugin to modify its static configuration. Overrides CKEditor5PluginDefault::getDynamicPluginConfig
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 5
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 2

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal