From c0bd338d60614c8b567d0b9ec6a2fefbfe7fc999 Mon Sep 17 00:00:00 2001 From: Eric Bremner <ebremner@uwaterloo.ca> Date: Thu, 18 Feb 2021 15:58:56 +0000 Subject: [PATCH] ISTWCMS-4501: fixing ckeditor lineutils to use libraries --- src/Plugin/CKEditorPlugin/LineutilsPlugin.php | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/Plugin/CKEditorPlugin/LineutilsPlugin.php b/src/Plugin/CKEditorPlugin/LineutilsPlugin.php index 1979d557..d405ce0b 100644 --- a/src/Plugin/CKEditorPlugin/LineutilsPlugin.php +++ b/src/Plugin/CKEditorPlugin/LineutilsPlugin.php @@ -3,7 +3,10 @@ namespace Drupal\uw_cfg_common\Plugin\CKEditorPlugin; use Drupal\ckeditor\CKEditorPluginBase; +use Drupal\Core\Asset\LibrariesDirectoryFileFinder; +use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\editor\Entity\Editor; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Defines the "lineutils" plugin. @@ -13,7 +16,38 @@ use Drupal\editor\Entity\Editor; * label = @Translation("Line Utilities") * ) */ -class LineutilsPlugin extends CKEditorPluginBase { +class LineutilsPlugin extends CKEditorPluginBase implements ContainerFactoryPluginInterface { + + /** + * Library file finder. + * + * @var \Drupal\Core\Asset\LibrariesDirectoryFileFinder + */ + protected $libFileFinder; + + /** + * Constructs a BlockComponentRenderArray object. + * + * @param array $configuration + * A configuration array containing information about the plugin instance. + * @param string $plugin_id + * The plugin ID for the plugin instance. + * @param mixed $plugin_definition + * The plugin implementation definition. + * @param \Drupal\Core\Asset\LibrariesDirectoryFileFinder $libFileFinder + * The library file finder. + */ + public function __construct(array $configuration, $plugin_id, $plugin_definition, LibrariesDirectoryFileFinder $libFileFinder) { + parent::__construct($configuration, $plugin_id, $plugin_definition); + $this->libFileFinder = $libFileFinder; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { + return new static($configuration, $plugin_id, $plugin_definition, $container->get('library.libraries_directory_file_finder')); + } /** * {@inheritdoc} @@ -33,7 +67,7 @@ class LineutilsPlugin extends CKEditorPluginBase { * {@inheritdoc} */ public function getFile() { - return drupal_get_path('profile', 'uw_base_profile') . '/libraries/ckeditor-lineutils/plugin.js'; + return $this->libFileFinder->find('ckeditor-lineutils') . '/plugin.js'; } } -- GitLab