Follow-up to feature #14067: htmlARea RTE: Eliminate namespace pollution
authorStanislas Rolland <typo3@sjbr.ca>
Tue, 13 Apr 2010 03:07:47 +0000 (03:07 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Tue, 13 Apr 2010 03:07:47 +0000 (03:07 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7326 709f56b5-9817-0410-a4d7-c38de5d9e867

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

index 0ad3c71..7965204 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,7 @@
        * Follow-up to bug #14066: htmlArea RTE: Erratic handling of oncut and onpaste events
        * Updated NEWS.txt as follow-up to #13580: htmlArea RTE: Extjize the RTE
        * Fixed bug #14084: htmlArea RTE: RTE fails in absence of wizards
+       * Follow-up to feature #14067: htmlARea RTE: Eliminate namespace pollution
 
 2010-04-12  Susanne Moog  <typo3@susanne-moog.de>
 
index c16ce4c..92e9ebf 100644 (file)
@@ -4,6 +4,7 @@
        * Fixed bug #13674: htmlArea RTE: Incorrect position of cursor after SHIFT-ENTER in WebKit browser
        * Follow-up to bug #14066: htmlArea RTE: Erratic handling of oncut and onpaste events
        * Fixed bug #14084: htmlArea RTE: RTE fails in absence of wizards
+       * Follow-up to feature #14067: htmlARea RTE: Eliminate namespace pollution
 
 2010-04-11  Stanislas Rolland  <typo3@sjbr.ca>
 
index f1b4267..91fd536 100644 (file)
@@ -703,7 +703,6 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
         * @return      string          the html code for loading the Javascript Files
         */
        function loadJSfiles($RTEcounter) {
-               $this->buildJSMainLangFile($RTEcounter);
                $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);
@@ -714,6 +713,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        $extensionKey = is_object($this->registeredPlugins[$pluginId]) ? $this->registeredPlugins[$pluginId]->getExtensionKey() : $this->ID;
                        $this->writeTemporaryFile('EXT:' . $extensionKey . '/htmlarea/plugins/' . $pluginId . '/' . strtolower(preg_replace('/([a-z])([A-Z])([a-z])/', "$1".'-'."$2"."$3", $pluginId)) . '.js', $pluginId, 'js', '', TRUE);
                }
+               $this->buildJSMainLangFile($RTEcounter);
                        // Avoid re-initialization on AJax call when RTEarea object was already initialized
                $loadJavascriptCode = '
                <script type="text/javascript" src="' . $this->doConcatenate() . '"></script>
@@ -1054,7 +1054,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
         * @return      string          Javascript localization array
         */
        function buildJSMainLangArray() {
-               $JSLanguageArray = 'var HTMLArea_langArray = new Object();' . LF;
+               $JSLanguageArray = 'HTMLArea.I18N = new Object();' . LF;
                $labelsArray = array('tooltips' => array(), 'msg' => array(), 'dialogs' => array());
                foreach ($labelsArray as $labels => $subArray) {
                        $LOCAL_LANG = t3lib_div::readLLfile('EXT:' . $this->ID . '/htmlarea/locallang_' . $labels . '.xml', $this->language, 'utf-8');
@@ -1065,7 +1065,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        }
                        $labelsArray[$labels] = $LOCAL_LANG[$this->language];
                }
-               $JSLanguageArray .= 'HTMLArea_langArray = ' . json_encode($labelsArray) . ';' . LF;
+               $JSLanguageArray .= 'HTMLArea.I18N = ' . json_encode($labelsArray) . ';' . LF;
                return $JSLanguageArray;
        }
 
@@ -1165,14 +1165,14 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                $extensionKey = is_object($this->registeredPlugins[$plugin]) ? $this->registeredPlugins[$plugin]->getExtensionKey() : $this->ID;
                $LOCAL_LANG = t3lib_div::readLLfile('EXT:' . $extensionKey . '/htmlarea/plugins/' . $plugin . '/locallang.xml', $this->language, 'utf-8', 1);
                $linebreak = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->ID]['enableCompressedScripts'] ? '' : LF;
-               $JSLanguageArray = 'var ' . $plugin . '_langArray = new Object();' . $linebreak;
+               $JSLanguageArray = 'HTMLArea.I18N["' . $plugin . '"] = new Object();' . $linebreak;
                if (is_array($LOCAL_LANG)) {
                        if (!empty($LOCAL_LANG[$this->language])) {
                                $LOCAL_LANG[$this->language] = t3lib_div::array_merge_recursive_overrule($LOCAL_LANG['default'],$LOCAL_LANG[$this->language]);
                        } else {
                                $LOCAL_LANG[$this->language] = $LOCAL_LANG['default'];
                        }
-                       $JSLanguageArray .= $plugin . '_langArray = ' . json_encode($LOCAL_LANG[$this->language]) . ';'. LF;
+                       $JSLanguageArray .= 'HTMLArea.I18N["' . $plugin . '"] = ' . json_encode($LOCAL_LANG[$this->language]) . ';'. LF;
                }
                return $JSLanguageArray;
        }
index 4d98090..33f1189 100644 (file)
@@ -88,8 +88,6 @@ HTMLArea.init = function() {
        if (!Ext.isString(HTMLArea.editedContentCSS)) {
                HTMLArea.editedContentCSS = HTMLArea.editorSkin + 'htmlarea-edited-content.css';
        }
-               // Localization of core script
-       HTMLArea.I18N = HTMLArea_langArray;
        HTMLArea.isReady = true;
        HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: " + HTMLArea.editorUrl);
        HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: " + HTMLArea.editorCSS);
@@ -3814,7 +3812,6 @@ HTMLArea.Plugin = HTMLArea.Base.extend({
                this.editorConfiguration = editor.config;
                this.name = pluginName;
                try {
-                       HTMLArea.I18N[this.name] = eval(this.name + "_langArray");
                        this.I18N = HTMLArea.I18N[this.name];
                } catch(e) {
                        this.I18N = new Object();