{% 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 }}"), * module = "{{ module }}" * ) */ 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 [ {% for button in buttons %} '{{ button.name }}' => [ 'label' => t('{{ button.label }}'), 'image' => '{{ button.icon }}', ], {% endfor %} ]; } /** * {@inheritdoc} */ public function isEnabled(Editor $editor) { } /** * {@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/Plugin/{{ 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 %}