Follow-up to feature #14051: htmlArea RTE: Streamline the RTE loading process
authorStanislas Rolland <typo3@sjbr.ca>
Tue, 13 Apr 2010 04:31:47 +0000 (04:31 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Tue, 13 Apr 2010 04:31:47 +0000 (04:31 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7327 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php

index 7965204..45d46f6 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-13  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Follow-up to feature #14051: htmlArea RTE: Streamline the RTE loading process
+
 2010-04-13  Steffen Kamper  <info@sk-typo3.de>
 
        * Added Feature #12229: Add stdWrap date/strftime with GMT format property
index 92e9ebf..a5c93db 100644 (file)
@@ -1,3 +1,7 @@
+2010-04-13  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Follow-up to feature #14051: htmlArea RTE: Streamline the RTE loading process
+
 2010-04-12  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Added feature #13116: htmlArea RTE: Allow to hide counting classes
index 91fd536..ad7e832 100644 (file)
@@ -703,6 +703,8 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
         * @return      string          the html code for loading the Javascript Files
         */
        function loadJSfiles($RTEcounter) {
+                       // Re-initialize the scripts array so that only the cumulative set of plugins of the last RTE on the page is used
+               $this->cumulativeScripts[$RTEcounter] = array();
                $this->writeTemporaryFile('EXT:' . $this->ID . '/htmlarea/htmlarea.js', 'htmlarea', 'js', '', TRUE);
                if ($this->client['BROWSER'] == 'msie') {
                        $this->writeTemporaryFile('EXT:' . $this->ID . '/htmlarea/htmlarea-ie.js', 'htmlarea-ie', 'js', '', TRUE);
@@ -716,7 +718,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                $this->buildJSMainLangFile($RTEcounter);
                        // Avoid re-initialization on AJax call when RTEarea object was already initialized
                $loadJavascriptCode = '
-               <script type="text/javascript" src="' . $this->doConcatenate() . '"></script>
+               <script type="text/javascript" src="' . $this->doConcatenate($RTEcounter) . '"></script>
                <script type="text/javascript">
                /*<![CDATA[*/
                        if (typeof(RTEarea) == "undefined") {
@@ -1103,23 +1105,25 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        }
                }
                if ($concatenate) {
-                       $this->cumulativeScripts[] = $destination;
+                       $this->cumulativeScripts[$this->TCEform->RTEcounter][] = $destination;
                }
                return (($this->is_FE() && $GLOBALS['TSFE']->absRefPrefix) ? $GLOBALS['TSFE']->absRefPrefix : '../' ) . $relativeFilename;
        }
        /**
         * Concatenates all accumulated scripts in a file in typo3temp/rtehtmlarea directory and returns the file name
         *
+        * @param       integer         $RTEcounter: The index number of the current RTE editing area within the form.
+        *
         * @return      string          The name of the file writtten to typo3temp/rtehtmlarea
         */
-       protected function doConcatenate() {
+       protected function doConcatenate($RTEcounter) {
                $fileExtension = 'js';
                $compress = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->ID]['enableCompressedScripts'];
-               $token = implode('|', $this->cumulativeScripts);
+               $token = implode('|', $this->cumulativeScripts[$RTEcounter]);
                $relativeFilename = 'typo3temp/' . $this->ID . '/' . 'htmlarea_cumulative' . '_' . t3lib_div::shortMD5(($TYPO3_CONF_VARS['EXTCONF'][$this->ID]['version'] . $token ), 20) . ($compress ? '_compressed' : '') . '.' . $fileExtension;
                $destination = PATH_site . $relativeFilename;
                if (!file_exists($destination)) {
-                       foreach ($this->cumulativeScripts as $fileName) {
+                       foreach ($this->cumulativeScripts[$RTEcounter] as $fileName) {
                                $contents = file_get_contents($fileName);
                                if (!file_exists($destination)) {
                                        $failure = t3lib_div::writeFileToTypo3tempDir($destination, $contents);