From 32c92bdc608931e4214b84fec199cc1b1b79c63c Mon Sep 17 00:00:00 2001 From: O3-Shop Date: Tue, 11 Apr 2023 01:05:06 +0200 Subject: [PATCH] fix not removed protection in attributes --- Application/Core/TinyMCE/Configuration.php | 2 + .../TinyMCE/Options/InitInstanceCallback.php | 57 +++++++++++++++++++ Application/Core/TinyMCE/Options/Setup.php | 13 +++-- Application/Core/TinyMCE/Utils.php | 5 ++ 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 Application/Core/TinyMCE/Options/InitInstanceCallback.php diff --git a/Application/Core/TinyMCE/Configuration.php b/Application/Core/TinyMCE/Configuration.php index 58be635..1f84e8b 100644 --- a/Application/Core/TinyMCE/Configuration.php +++ b/Application/Core/TinyMCE/Configuration.php @@ -32,6 +32,7 @@ use O3\TinyMCE\Application\Core\TinyMCE\Options\EntityEncoding; use O3\TinyMCE\Application\Core\TinyMCE\Options\ExternalPlugins; use O3\TinyMCE\Application\Core\TinyMCE\Options\FilemanagerUrl; use O3\TinyMCE\Application\Core\TinyMCE\Options\ImageAdvtab; +use O3\TinyMCE\Application\Core\TinyMCE\Options\InitInstanceCallback; use O3\TinyMCE\Application\Core\TinyMCE\Options\Language; use O3\TinyMCE\Application\Core\TinyMCE\Options\MaxHeight; use O3\TinyMCE\Application\Core\TinyMCE\Options\MaxWidth; @@ -112,6 +113,7 @@ class Configuration $this->addOption(oxNew(BaseUrl::class, $this->loader)); $this->addOption(oxNew(CacheSuffix::class, $this->loader)); $this->addOption(oxNew(Selector::class, $this->loader)); + $this->addOption(oxNew(InitInstanceCallback::class, $this->loader)); } protected function addGuiOptions(): void diff --git a/Application/Core/TinyMCE/Options/InitInstanceCallback.php b/Application/Core/TinyMCE/Options/InitInstanceCallback.php new file mode 100644 index 0000000..844bcf6 --- /dev/null +++ b/Application/Core/TinyMCE/Options/InitInstanceCallback.php @@ -0,0 +1,57 @@ + + * + * @copyright Copyright (c) 2022 Marat Bedoev, bestlife AG + * @copyright Copyright (c) 2023 O3-Shop (https://www.o3-shop.com) + * @license https://www.gnu.org/licenses/gpl-3.0 GNU General Public License 3 (GPLv3) + */ + +declare(strict_types=1); + +namespace O3\TinyMCE\Application\Core\TinyMCE\Options; + +use O3\TinyMCE\Application\Core\TinyMCE\PluginList; +use O3\TinyMCE\Application\Core\TinyMCE\Plugins\PluginInterface; +use O3\TinyMCE\Application\Core\TinyMCE\Utils; + +class InitInstanceCallback extends AbstractOption +{ + protected string $key = 'init_instance_callback'; + + public function get(): string + { + // https://github.com/tinymce/tinymce/issues/2271 + + $js = <<minifyJS($js); + } +} diff --git a/Application/Core/TinyMCE/Options/Setup.php b/Application/Core/TinyMCE/Options/Setup.php index f6a127c..a0b5dab 100644 --- a/Application/Core/TinyMCE/Options/Setup.php +++ b/Application/Core/TinyMCE/Options/Setup.php @@ -23,6 +23,8 @@ declare(strict_types=1); namespace O3\TinyMCE\Application\Core\TinyMCE\Options; +use O3\TinyMCE\Application\Core\TinyMCE\Utils; + class Setup extends AbstractOption { protected string $key = 'setup'; @@ -30,11 +32,12 @@ class Setup extends AbstractOption public function get(): string { $js = << { - editor.options.register("filemanager_url", { processor: "string" }); - } - JS; - return trim((string) preg_replace('!\s+!', ' ', $js)); + (editor) => { + editor.options.register("filemanager_url", { processor: "string" }); + } + JS; + + return (oxNew(Utils::class))->minifyJS($js); } /** diff --git a/Application/Core/TinyMCE/Utils.php b/Application/Core/TinyMCE/Utils.php index 5804f49..e53f096 100644 --- a/Application/Core/TinyMCE/Utils.php +++ b/Application/Core/TinyMCE/Utils.php @@ -29,4 +29,9 @@ class Utils { return '"'.addslashes($string).'"'; } + + public function minifyJS(string $js): string + { + return trim((string) preg_replace('!\s+!', ' ', $js)); + } }