From 0399b31893bad472570eabb848ce2e15582ff070 Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Fri, 24 May 2019 11:51:45 +0200
Subject: [PATCH] [BUGFIX] Require `jquery` before using it when rendering
 ckeditor

In rare cases it might occur that jquery is not available on ckeditor
initialization, but it's used already. Interesting is that jquery
is explicitly required two lines later.

The code is now changed to require jquery before using its document.ready()
handling.

Resolves: #88429
Releases: master, 9.5, 8.7
Change-Id: I52d5a381f6415dc7680acb5d23138858dc4e96a6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60806
Tested-by: Frank Naegler <frank.naegler@typo3.org>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Susanne Moog <look@susi.dev>
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Reviewed-by: Susanne Moog <look@susi.dev>
---
 .../rte_ckeditor/Classes/Form/Element/RichTextElement.php   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/typo3/sysext/rte_ckeditor/Classes/Form/Element/RichTextElement.php b/typo3/sysext/rte_ckeditor/Classes/Form/Element/RichTextElement.php
index 295f8a3cf0e5..bd0373a46967 100644
--- a/typo3/sysext/rte_ckeditor/Classes/Form/Element/RichTextElement.php
+++ b/typo3/sysext/rte_ckeditor/Classes/Form/Element/RichTextElement.php
@@ -197,9 +197,9 @@ class RichTextElement extends AbstractFormElement
 
         return 'function(CKEDITOR) {
                 ' . $externalPlugins . '
-                $(function(){
-                    CKEDITOR.replace("' . $fieldId . '", ' . json_encode($configuration) . ');
-                    require([\'jquery\', \'TYPO3/CMS/Backend/FormEngine\'], function($, FormEngine) {
+                require([\'jquery\', \'TYPO3/CMS/Backend/FormEngine\'], function($, FormEngine) {
+                    $(function(){
+                        CKEDITOR.replace("' . $fieldId . '", ' . json_encode($configuration) . ');
                         CKEDITOR.instances["' . $fieldId . '"].on(\'change\', function() {
                             CKEDITOR.instances["' . $fieldId . '"].updateElement();
                             FormEngine.Validation.validate();
-- 
GitLab