diff --git a/Application/Core/TinyMCE/Configuration.php b/Application/Core/TinyMCE/Configuration.php index 1aa40b0..9aa4ccf 100644 --- a/Application/Core/TinyMCE/Configuration.php +++ b/Application/Core/TinyMCE/Configuration.php @@ -45,6 +45,7 @@ use O3\TinyMCE\Application\Core\TinyMCE\Options\QuickbarsInsertToolbar; use O3\TinyMCE\Application\Core\TinyMCE\Options\RelativeUrls; use O3\TinyMCE\Application\Core\TinyMCE\Options\Selector; use O3\TinyMCE\Application\Core\TinyMCE\Options\Setup; +use O3\TinyMCE\Application\Core\TinyMCE\Options\Skin; use O3\TinyMCE\Application\Core\TinyMCE\Options\Toolbar; use O3\TinyMCE\Application\Core\TinyMCE\Options\ToolbarMode; use O3\TinyMCE\Application\Core\TinyMCE\Options\ToolbarSticky; @@ -106,6 +107,7 @@ class Configuration protected function addGuiOptions(): void { + $this->addOption(oxNew(Skin::class, $this->loader)); $this->addOption(oxNew(Promotion::class, $this->loader)); $this->addOption(oxNew(ContextMenu::class, $this->loader)); $this->addOption(oxNew(MinHeight::class, $this->loader)); diff --git a/Application/Core/TinyMCE/Options/ContentCss.php b/Application/Core/TinyMCE/Options/ContentCss.php index d68c2e8..52e4135 100644 --- a/Application/Core/TinyMCE/Options/ContentCss.php +++ b/Application/Core/TinyMCE/Options/ContentCss.php @@ -32,9 +32,18 @@ class ContentCss extends AbstractOption protected Loader $loader; + protected bool $darkMode = false; + public function get(): string { - return '/out/'.strtolower(Registry::getConfig()->getConfigParam('sTheme')).'/src/css/styles.min.css'; + return implode( + ',', + [ + $this->darkMode ? + 'dark' : + '/out/'.strtolower(Registry::getConfig()->getConfigParam('sTheme')).'/src/css/styles.min.css' + ] + ); } public function mustQuote(): bool diff --git a/Application/Core/TinyMCE/Options/Skin.php b/Application/Core/TinyMCE/Options/Skin.php new file mode 100644 index 0000000..fbcc7db --- /dev/null +++ b/Application/Core/TinyMCE/Options/Skin.php @@ -0,0 +1,47 @@ + + * + * @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\Loader; +use OxidEsales\Eshop\Core\Registry; +use OxidEsales\Eshop\Core\UtilsServer; + +class Skin extends AbstractOption +{ + protected string $key = 'skin'; + + protected Loader $loader; + + protected bool $darkMode = false; + + public function get(): string + { + return $this->darkMode ? 'oxide-dark' : 'oxide'; + } + + public function mustQuote(): bool + { + return true; + } +} \ No newline at end of file