ckeditor_mentions-8.x-2.x-dev/src/Plugin/CKEditor4To5Upgrade/MentionsUpgrade.php

src/Plugin/CKEditor4To5Upgrade/MentionsUpgrade.php
<?php

declare(strict_types=1);

namespace Drupal\ckeditor_mentions\Plugin\CKEditor4To5Upgrade;

use Drupal\ckeditor5\HTMLRestrictions;
use Drupal\ckeditor5\Plugin\CKEditor4To5UpgradePluginInterface;
use Drupal\Core\Plugin\PluginBase;
use Drupal\filter\FilterFormatInterface;

/**
 * Provides the CKEditor 4 to 5 upgrade path for mentions plugin.
 *
 * @CKEditor4To5Upgrade(
 *   id = "ckeditor_mentions",
 *   cke4_buttons = {},
 *   cke4_plugin_settings = {
 *     "mentions",
 *   },
 *   cke5_plugin_elements_subset_configuration = {}
 * )
 */
class MentionsUpgrade extends PluginBase implements CKEditor4To5UpgradePluginInterface {

  /**
   * {@inheritdoc}
   */
  public function mapCKEditor4ToolbarButtonToCKEditor5ToolbarItem(string $cke4_button, HTMLRestrictions $text_format_html_restrictions): ?array {
    throw new \OutOfBoundsException();
  }

  /**
   * {@inheritdoc}
   */
  public function mapCKEditor4SettingsToCKEditor5Configuration(string $cke4_plugin_id, array $cke4_plugin_settings): ?array {
    return match ($cke4_plugin_id) {
      'mentions' => [
        'ckeditor_mentions_mentions' => [
          'plugins' => [
            $cke4_plugin_settings['mentions_type'] ?? 'user' => [
              'marker' => $cke4_plugin_settings['marker'],
              'charcount' => $cke4_plugin_settings['charcount'],
              'dropdownLimit' => 10,
              'enable' => $cke4_plugin_settings['enable'] ?? FALSE,
            ],
          ],
        ],
      ],
      default => throw new \OutOfBoundsException(),
    };
  }

  /**
   * {@inheritdoc}
   */
  public function computeCKEditor5PluginSubsetConfiguration(string $cke5_plugin_id, FilterFormatInterface $text_format): ?array {
    throw new \OutOfBoundsException();
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc