class Editor in Drupal 9
Same name in this branch
- 9 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
- 9 core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
- 9 core/modules/editor/src/Plugin/InPlaceEditor/Editor.php \Drupal\editor\Plugin\InPlaceEditor\Editor
Same name and namespace in other branches
- 8 core/modules/editor/src/Plugin/InPlaceEditor/Editor.php \Drupal\editor\Plugin\InPlaceEditor\Editor
Defines the formatted text in-place editor.
Plugin annotation
@InPlaceEditor(
  id = "editor"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\editor\Plugin\InPlaceEditor\Editor implements InPlaceEditorInterface
 
Expanded class hierarchy of Editor
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
File
- core/modules/ editor/ src/ Plugin/ InPlaceEditor/ Editor.php, line 18 
Namespace
Drupal\editor\Plugin\InPlaceEditorView source
class Editor extends PluginBase implements InPlaceEditorInterface {
  /**
   * {@inheritdoc}
   */
  public function isCompatible(FieldItemListInterface $items) {
    $field_definition = $items
      ->getFieldDefinition();
    // This editor is incompatible with multivalued fields.
    if ($field_definition
      ->getFieldStorageDefinition()
      ->getCardinality() != 1) {
      return FALSE;
    }
    elseif ($editor = editor_load($items[0]->format)) {
      $definition = \Drupal::service('plugin.manager.editor')
        ->getDefinition($editor
        ->getEditor());
      if ($definition['supports_inline_editing'] === TRUE) {
        return TRUE;
      }
    }
    return FALSE;
  }
  /**
   * {@inheritdoc}
   */
  public function getMetadata(FieldItemListInterface $items) {
    $format_id = $items[0]->format;
    $metadata['format'] = $format_id;
    $metadata['formatHasTransformations'] = $this
      ->textFormatHasTransformationFilters($format_id);
    return $metadata;
  }
  /**
   * Returns whether the text format has transformation filters.
   *
   * @param int $format_id
   *   A text format ID.
   *
   * @return bool
   */
  protected function textFormatHasTransformationFilters($format_id) {
    $format = FilterFormat::load($format_id);
    return (bool) count(array_intersect([
      FilterInterface::TYPE_TRANSFORM_REVERSIBLE,
      FilterInterface::TYPE_TRANSFORM_IRREVERSIBLE,
    ], $format
      ->getFiltertypes()));
  }
  /**
   * {@inheritdoc}
   */
  public function getAttachments() {
    $user = \Drupal::currentUser();
    $user_format_ids = array_keys(filter_formats($user));
    $manager = \Drupal::service('plugin.manager.editor');
    $definitions = $manager
      ->getDefinitions();
    // Filter the current user's formats to those that support inline editing.
    $formats = [];
    foreach ($user_format_ids as $format_id) {
      if ($editor = editor_load($format_id)) {
        $editor_id = $editor
          ->getEditor();
        if (isset($definitions[$editor_id]['supports_inline_editing']) && $definitions[$editor_id]['supports_inline_editing'] === TRUE) {
          $formats[] = $format_id;
        }
      }
    }
    // Get the attachments for all text editors that the user might use.
    $attachments = $manager
      ->getAttachments($formats);
    // Also include editor.module's formatted text editor.
    $attachments['library'][] = 'editor/quickedit.inPlaceEditor.formattedText';
    return $attachments;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| Editor:: | public | function | Returns the attachments for this editor. Overrides InPlaceEditorInterface:: | |
| Editor:: | public | function | Generates metadata that is needed specifically for this editor. Overrides InPlaceEditorInterface:: | |
| Editor:: | public | function | Checks whether this in-place editor is compatible with a given field. Overrides InPlaceEditorInterface:: | |
| Editor:: | protected | function | Returns whether the text format has transformation filters. | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 2 | 
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| PluginBase:: | public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 | 
