CKEditor5Plugin.php

Same filename in this branch
  1. 10 core/modules/ckeditor5/src/Attribute/CKEditor5Plugin.php
Same filename and directory in other branches
  1. 9 core/modules/ckeditor5/src/Annotation/CKEditor5Plugin.php
  2. 11.x core/modules/ckeditor5/src/Annotation/CKEditor5Plugin.php
  3. 11.x core/modules/ckeditor5/src/Attribute/CKEditor5Plugin.php

Namespace

Drupal\ckeditor5\Annotation

File

core/modules/ckeditor5/src/Annotation/CKEditor5Plugin.php

View source
<?php

declare (strict_types=1);
namespace Drupal\ckeditor5\Annotation;

use Drupal\ckeditor5\Plugin\CKEditor5PluginDefinition;
use Drupal\Component\Annotation\Plugin;

/**
 * Defines a CKEditor5Plugin annotation object.
 *
 * Plugin Namespace: Plugin\CKEditor5Plugin.
 *
 * @see \Drupal\ckeditor5\Plugin\CKEditor5PluginInterface
 * @see \Drupal\ckeditor5\Plugin\CKEditor5PluginManagerInterface
 * @see plugin_api
 *
 * @Annotation
 * @see \Drupal\ckeditor5\Annotation\CKEditor5AspectsOfCKEditor5Plugin
 * @see \Drupal\ckeditor5\Annotation\DrupalAspectsOfCKEditor5Plugin
 */
class CKEditor5Plugin extends Plugin {
  
  /**
   * The plugin ID.
   *
   * @var string
   */
  public $id;
  
  /**
   * The CKEditor 5 aspects of the plugin definition.
   *
   * @var \Drupal\ckeditor5\Annotation\CKEditor5AspectsOfCKEditor5Plugin
   */
  public $ckeditor5;
  
  /**
   * The Drupal aspects of the plugin definition.
   *
   * @var \Drupal\ckeditor5\Annotation\DrupalAspectsOfCKEditor5Plugin
   */
  public $drupal;
  
  /**
   * {@inheritdoc}
   *
   * Overridden for compatibility with the AnnotationBridgeDecorator, which
   * ensures YAML-defined CKEditor 5 plugin definitions are also processed by
   * annotations. Unfortunately it does not (yet) support nested annotations.
   * Force YAML-defined plugin definitions to be parsed by the
   * annotations, to ensure consistent handling of defaults.
   *
   * @see \Drupal\Component\Annotation\Plugin\Discovery\AnnotationBridgeDecorator::getDefinitions()
   */
  public function __construct($values) {
    if (isset($values['ckeditor5']) && is_array($values['ckeditor5'])) {
      $values['ckeditor5'] = new CKEditor5AspectsOfCKEditor5Plugin($values['ckeditor5']);
    }
    if (isset($values['drupal']) && is_array($values['drupal'])) {
      $values['drupal'] = new DrupalAspectsOfCKEditor5Plugin($values['drupal']);
    }
    parent::__construct($values);
  }
  
  /**
   * {@inheritdoc}
   */
  public function getClass() {
    return $this->definition['drupal']['class'];
  }
  
  /**
   * {@inheritdoc}
   */
  public function setClass($class) {
    $this->definition['drupal']['class'] = $class;
  }
  
  /**
   * {@inheritdoc}
   */
  public function get() : CKEditor5PluginDefinition {
    return new CKEditor5PluginDefinition($this->definition);
  }

}

Classes

Title Deprecated Summary
CKEditor5Plugin Defines a CKEditor5Plugin annotation object.

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