fix not removed protection in attributes
This commit is contained in:
parent
7f8caa565a
commit
32c92bdc60
@ -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
|
||||
|
57
Application/Core/TinyMCE/Options/InitInstanceCallback.php
Normal file
57
Application/Core/TinyMCE/Options/InitInstanceCallback.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of O3-Shop TinyMCE editor module.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with O3-Shop. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
* @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 = <<<JS
|
||||
function (editor) {
|
||||
editor.on('PostProcess', function (e) {
|
||||
e.content = e.content.replace(
|
||||
/(<!--mce:protected\s)(.*?)(-->)/gm,
|
||||
function(text, p1, p2, p3){
|
||||
if (unescape) {
|
||||
return unescape(p2);
|
||||
} else {
|
||||
return decodeURIComponent(p2);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
JS;
|
||||
|
||||
return (oxNew(Utils::class))->minifyJS($js);
|
||||
}
|
||||
}
|
@ -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';
|
||||
@ -34,7 +36,8 @@ class Setup extends AbstractOption
|
||||
editor.options.register("filemanager_url", { processor: "string" });
|
||||
}
|
||||
JS;
|
||||
return trim((string) preg_replace('!\s+!', ' ', $js));
|
||||
|
||||
return (oxNew(Utils::class))->minifyJS($js);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,4 +29,9 @@ class Utils
|
||||
{
|
||||
return '"'.addslashes($string).'"';
|
||||
}
|
||||
|
||||
public function minifyJS(string $js): string
|
||||
{
|
||||
return trim((string) preg_replace('!\s+!', ' ', $js));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user