class Editor

Same name in this branch
  1. 9 core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
  2. 9 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  3. 9 core/modules/editor/src/Plugin/InPlaceEditor/Editor.php \Drupal\editor\Plugin\InPlaceEditor\Editor
Same name in other branches
  1. 8.9.x core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
  2. 8.9.x core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  3. 8.9.x core/modules/editor/src/Plugin/InPlaceEditor/Editor.php \Drupal\editor\Plugin\InPlaceEditor\Editor
  4. 10 core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
  5. 10 core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  6. 11.x core/modules/editor/src/Entity/Editor.php \Drupal\editor\Entity\Editor
  7. 11.x core/modules/editor/src/Annotation/Editor.php \Drupal\editor\Annotation\Editor
  8. 11.x core/modules/editor/src/Attribute/Editor.php \Drupal\editor\Attribute\Editor
  9. 10 core/modules/editor/src/Attribute/Editor.php \Drupal\editor\Attribute\Editor

Defines the formatted text in-place editor.

Plugin annotation


@InPlaceEditor(
  id = "editor",
  provider = "editor",
)

Hierarchy

Expanded class hierarchy of Editor

56 string references to 'Editor'
CKEditor5::assessActiveTextEditorAfterBuild in core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php
Form #after_build callback: provides text editor state changes.
CKEditor5::buildConfigurationForm in core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php
Form constructor.
CKEditor5::submitConfigurationForm in core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php
Form submission handler.
CKEditor5::validateConfigurationForm in core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php
Form validation handler.
CKEditor5ImageController::upload in core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php
Uploads and saves an image from a CKEditor 5 POST.

... See full list

File

core/modules/quickedit/src/Plugin/InPlaceEditor/Editor.php, line 19

Namespace

Drupal\quickedit\Plugin\InPlaceEditor
View 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 quickedit.module's formatted text editor.
        $attachments['library'][] = 'quickedit/quickedit.inPlaceEditor.formattedText';
        return $attachments;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Editor::getAttachments public function Returns the attachments for this editor. Overrides InPlaceEditorInterface::getAttachments
Editor::getMetadata public function Generates metadata that is needed specifically for this editor. Overrides InPlaceEditorInterface::getMetadata
Editor::isCompatible public function Checks whether this in-place editor is compatible with a given field. Overrides InPlaceEditorInterface::isCompatible
Editor::textFormatHasTransformationFilters protected function Returns whether the text format has transformation filters.
PluginBase::$configuration protected property Configuration information passed into the plugin.
PluginBase::$pluginDefinition protected property The plugin implementation definition.
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
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.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 8

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