[BUGFIX] Encoding error in TCEforms inline JavaScript
authorManuel Stofer <mst@rtp.ch>
Wed, 1 Feb 2012 09:17:02 +0000 (10:17 +0100)
committerSteffen Gebert <steffen.gebert@typo3.org>
Fri, 3 Feb 2012 18:50:18 +0000 (19:50 +0100)
JavaScript encoding is broken, when the link browser is used to add a
new item and sections are used.

Change-Id: Id366d078841a3decd0256f98df497956a494ecb8
Fixes: #32422
Related: #29067
Releases: 4.7, 4.6, 4.5
Reviewed-on: http://review.typo3.org/8831
Reviewed-by: Steffen Gebert
Tested-by: Steffen Gebert
t3lib/class.t3lib_tceforms.php

index 2c7c60c..47e8bb7 100644 (file)
@@ -2685,7 +2685,7 @@ class t3lib_TCEforms {
                                                                $replace .= '.replace(/(tceforms-(datetime|date)field-)/g,"$1" + (new Date()).getTime())';
                                                                $onClickInsert = 'var ' . $var . ' = "' . 'idx"+(new Date()).getTime();';
                                                                        // Do not replace $isTagPrefix in setActionStatus() because it needs section id!
-                                                               $onClickInsert .= 'new Insertion.Bottom($("' . $idTagPrefix . '"), unescape(decodeURIComponent("' . rawurlencode($newElementTemplate) . '")).' . $replace . '); setActionStatus("' . $idTagPrefix . '");';
+                                                               $onClickInsert .= 'new Insertion.Bottom($("' . $idTagPrefix . '"), ' . json_encode($newElementTemplate) . '.' . $replace . '); setActionStatus("' . $idTagPrefix . '");';
                                                                $onClickInsert .= 'eval(unescape("' . rawurlencode(implode(';', $this->additionalJS_post)) . '").' . $replace . ');';
                                                                $onClickInsert .= 'TBE_EDITOR.addActionChecks("submit", unescape("' . rawurlencode(implode(';', $this->additionalJS_submit)) . '").' . $replace . ');';
                                                                $onClickInsert .= 'TYPO3.TCEFORMS.update();';