You are here

class Editor in Drupal 8

Same name in this branch
  1. 8 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  2. 8 core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
  3. 8 core/modules/editor/src/Plugin/InPlaceEditor/Editor.php \Drupal\editor\Plugin\InPlaceEditor\Editor
Same name and namespace in other branches
  1. 9 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  2. 10 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 = "myeditor",
  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\ckeditor\Plugin\Editor\CKEditor

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

1 string reference to 'Editor'
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
3 classes are annotated with Editor
CKEditor in core/modules/ckeditor/src/Plugin/Editor/CKEditor.php
Defines a CKEditor-based text editor for Drupal.
TRexEditor in core/modules/editor/tests/modules/src/Plugin/Editor/TRexEditor.php
Defines a Tyrannosaurus-Rex powered text editor for testing purposes.
UnicornEditor in core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
Defines a Unicorn-powered text editor for Drupal (for testing purposes).

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