Same name in this branch
  1. 10 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  2. 10 core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
Same name and namespace in other branches
  1. 8.9.x core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  2. 9 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor

Defines an Editor annotation object.

Plugin Namespace: Plugin\Editor

Text editor plugin implementations need to define a plugin definition array through annotation. These definition arrays may be altered through hook_editor_info_alter(). The definition includes the following keys:

  • id: The unique, system-wide identifier of the text editor. Typically named the same as the editor library.
  • label: The human-readable name of the text editor, translated.
  • supports_content_filtering: Whether the editor supports "allowed content only" filtering.
  • supports_inline_editing: Whether the editor supports the inline editing provided by the Edit module.
  • is_xss_safe: Whether this text editor is not vulnerable to XSS attacks.
  • supported_element_types: On which form element #types this text editor is capable of working.

A complete sample plugin definition should be defined as in this example:


@Editor(
  id = "my_editor",
  label = @Translation("My Editor"),
  supports_content_filtering = FALSE,
  supports_inline_editing = FALSE,
  is_xss_safe = FALSE,
  supported_element_types = {
    "textarea",
    "textfield",
  }
)

For a working example, see \Drupal\ckeditor5\Plugin\Editor\CKEditor5

Hierarchy

Expanded class hierarchy of Editor

See also

\Drupal\editor\Plugin\EditorPluginInterface

\Drupal\editor\Plugin\EditorBase

\Drupal\editor\Plugin\EditorManager

hook_editor_info_alter()

Plugin API

Related topics

2 string references to 'Editor'
ContextualFiltersStringTest::setUp in core/modules/views/tests/src/Functional/Plugin/ContextualFiltersStringTest.php
Sets up the test.
user.role.editor.yml in core/profiles/demo_umami/config/install/user.role.editor.yml
core/profiles/demo_umami/config/install/user.role.editor.yml

File

core/modules/editor/src/Annotation/Editor.php, line 53

Namespace

Drupal\editor\Annotation
View source
class Editor extends Plugin {

  /**
   * The plugin ID.
   *
   * @var string
   */
  public $id;

  /**
   * The human-readable name of the editor plugin.
   *
   * @ingroup plugin_translatable
   *
   * @var \Drupal\Core\Annotation\Translation
   */
  public $label;

  /**
   * Whether the editor supports "allowed content only" filtering.
   *
   * @var bool
   */
  public $supports_content_filtering;

  /**
   * Whether the editor supports the inline editing provided by the Edit module.
   *
   * @var bool
   */
  public $supports_inline_editing;

  /**
   * Whether this text editor is not vulnerable to XSS attacks.
   *
   * @var bool
   */
  public $is_xss_safe;

  /**
   * A list of element types this text editor supports.
   *
   * @var string[]
   */
  public $supported_element_types;

}

Members

Namesort ascending Modifiers Type Description Overrides
Plugin::__construct public function Constructs a Plugin object. 3
Plugin::setProvider public function Sets the name of the provider of the annotated class. Overrides AnnotationInterface::setProvider
Plugin::setClass public function Sets the class of the annotated class. Overrides AnnotationInterface::setClass 1
Plugin::parse protected function Parses an annotation into its definition.
Plugin::getProvider public function Gets the name of the provider of the annotated class. Overrides AnnotationInterface::getProvider 1
Plugin::getId public function Gets the unique ID for this annotated class. Overrides AnnotationInterface::getId
Plugin::getClass public function Gets the class of the annotated class. Overrides AnnotationInterface::getClass 1
Plugin::get public function Gets the value of an annotation. Overrides AnnotationInterface::get 6
Plugin::$definition protected property The plugin definition read from the class annotation. 1
Editor::$supports_inline_editing public property Whether the editor supports the inline editing provided by the Edit module.
Editor::$supports_content_filtering public property Whether the editor supports "allowed content only" filtering.
Editor::$supported_element_types public property A list of element types this text editor supports.
Editor::$label public property The human-readable name of the editor plugin.
Editor::$is_xss_safe public property Whether this text editor is not vulnerable to XSS attacks.
Editor::$id public property The plugin ID.