From e97057246a0b58f1dbed7a733eb18f57a4cd11f1 Mon Sep 17 00:00:00 2001 From: Ben Thomson Date: Wed, 6 Nov 2019 17:44:46 +0800 Subject: [PATCH] Fix empty Richeditor class lists from breaking widget (#4725) --- modules/backend/formwidgets/RichEditor.php | 13 ++++++++++++- .../formwidgets/richeditor/partials/_richeditor.htm | 10 +++++----- modules/backend/models/EditorSetting.php | 13 +++++++++---- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/modules/backend/formwidgets/RichEditor.php b/modules/backend/formwidgets/RichEditor.php index af905d6fc..c236ca754 100644 --- a/modules/backend/formwidgets/RichEditor.php +++ b/modules/backend/formwidgets/RichEditor.php @@ -1,10 +1,12 @@ addCss('css/richeditor.css', 'core'); $this->addJs('js/build-min.js', 'core'); - $this->addJs('js/build-plugins-min.js', 'core'); + + if (Config::get('develop.decompileBackendAssets', false)) { + $scripts = Backend::decompileAsset($this->getAssetPath('js/build-plugins.js')); + foreach ($scripts as $script) { + $this->addJs($script, 'core'); + } + } else { + $this->addJs('js/build-plugins-min.js', 'core'); + } + $this->addJs('/modules/backend/formwidgets/codeeditor/assets/js/build-min.js', 'core'); if ($lang = $this->getValidEditorLang()) { diff --git a/modules/backend/formwidgets/richeditor/partials/_richeditor.htm b/modules/backend/formwidgets/richeditor/partials/_richeditor.htm index 31f2b2646..5b7d0c63c 100755 --- a/modules/backend/formwidgets/richeditor/partials/_richeditor.htm +++ b/modules/backend/formwidgets/richeditor/partials/_richeditor.htm @@ -16,11 +16,11 @@ data-no-wrap-tags="" data-remove-tags="" data-line-breaker-tags="" - data-image-styles="" - data-link-styles="" - data-paragraph-styles="" - data-table-styles="" - data-table-cell-styles="" + data-image-styles="" + data-link-styles="" + data-paragraph-styles="" + data-table-styles="" + data-table-cell-styles="" data-links-handler="getEventHandler('onLoadPageLinksForm') ?>" data-ace-vendor-path="" data-control="richeditor"> diff --git a/modules/backend/models/EditorSetting.php b/modules/backend/models/EditorSetting.php index 4fda96bcf..25510db84 100644 --- a/modules/backend/models/EditorSetting.php +++ b/modules/backend/models/EditorSetting.php @@ -33,7 +33,7 @@ class EditorSetting extends Model * @var mixed Settings form field defitions */ public $settingsFields = 'fields.yaml'; - + /** * @var string The key to store rendered CSS in the cache under */ @@ -128,9 +128,14 @@ class EditorSetting extends Model $defaultValue = $instance->getDefaultValue($key); if (is_array($value)) { - $value = array_build($value, function ($key, $value) { - return [array_get($value, 'class_name'), array_get($value, 'class_label')]; - }); + $value = array_filter(array_build($value, function ($key, $value) { + if (array_has($value, ['class_name', 'class_label'])) { + return [ + array_get($value, 'class_name'), + array_get($value, 'class_label') + ]; + } + })); } return $value != $defaultValue ? $value : $default;