editorjs-2.x-dev/src/Plugin/EditorJsTools/TableTool.php

src/Plugin/EditorJsTools/TableTool.php
<?php

namespace Drupal\editorjs\Plugin\EditorjsTools;

use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\editorjs\EditorJsToolsPluginBase;

/**
 * Plugin implementation of the editorjs_tools.
 *
 * @EditorJsTools(
 *   id = "table",
 *   implementer = "Table",
 *   label = @Translation("Table"),
 *   description = @Translation("Provides table elements.")
 * )
 */
class TableTool extends EditorJsToolsPluginBase {

  /**
   * {@inheritdoc}
   */
  public function settingsForm(FieldDefinitionInterface $fieldDefinition, array $settings = []) {
    $elements = parent::settingsForm($fieldDefinition, $settings);

    $elements['rows'] = [
      '#type' => 'number',
      '#title' => $this->t('Rows'),
      '#description' => $this->t('The default rows count.'),
      '#default_value' => $settings['rows'] ?? 2,
    ];

    $elements['cols'] = [
      '#type' => 'number',
      '#title' => $this->t('Cols'),
      '#description' => $this->t('The default cols count.'),
      '#default_value' => $settings['cols'] ?? 3,
    ];

    return $elements;
  }

  /**
   * {@inheritdoc}
   */
  public function getFile() {
    return "/libraries/editorjs_dependencies/editorjs/tools/table.min.js";
  }

  /**
   * {@inheritdoc}
   */
  public function prepareSettings($settings) {
    return [
      'inlineToolbar' => (bool) $settings['inlineToolbar'],
      'config' => [
        'rows' => (int) $settings['rows'],
        'cols' => (int) $settings['cols'],
      ],
    ];
  }

}

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

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