{% extends "base/class.php.twig" %}

{% block file_path %}
\Drupal\{{ module }}\Plugin\CKEditorPlugin\{{ class_name }}.
{% endblock %}

{% block namespace_class %}
namespace Drupal\{{ module }}\Plugin\CKEditorPlugin;
{% endblock %}

{% block use_class %}
use Drupal\ckeditor\CKEditorPluginBase;
use Drupal\editor\Entity\Editor;
{% endblock %}

{% block class_declaration %}
/**
 * Defines the "{{ plugin_id }}" plugin.
 *
 * NOTE: The plugin ID ('id' key) corresponds to the CKEditor plugin name.
 * It is the first argument of the CKEDITOR.plugins.add() function in the
 * plugin.js file.
 *
 * @CKEditorPlugin(
 *   id = "{{ plugin_id }}",
 *   label = @Translation("{{ label }}")
 * )
 */
class {{ class_name }} extends CKEditorPluginBase {% endblock %}
{% block class_methods %}

  /**
   * {@inheritdoc}
   *
   * NOTE: The keys of the returned array corresponds to the CKEditor button
   * names. They are the first argument of the editor.ui.addButton() or
   * editor.ui.addRichCombo() functions in the plugin.js file.
   */
  public function getButtons() {
    // Make sure that the path to the image matches the file structure of
    // the CKEditor plugin you are implementing.
    return [
      '{{ button_name }}' => [
        'label' => t('{{ label }}'),
        'image' => '{{ button_icon_path }}',
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getFile() {
    // Make sure that the path to the plugin.js matches the file structure of
    // the CKEditor plugin you are implementing.
    return drupal_get_path('module', '{{ module }}') . '/js/plugins/{{ plugin_id }}/plugin.js';
  }

  /**
   * {@inheritdoc}
   */
  public function isInternal() {
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  public function getDependencies(Editor $editor) {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function getLibraries(Editor $editor) {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function getConfig(Editor $editor) {
    return [];
  }
{% endblock %}
