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