Fixed bug #9386: Acronym plugin encoding problem
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / extensions / Acronym / class.tx_rtehtmlarea_acronym.php
index 9eea8af..1721772 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2008 Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+*  (c) 2008 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the Typo3 project. The Typo3 project is
@@ -24,7 +24,7 @@
 /**
  * Acronym extension for htmlArea RTE
  *
- * @author Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+ * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
  *
  * TYPO3 SVN ID: $Id$
  *
@@ -110,14 +110,16 @@ class tx_rtehtmlarea_acronym extends tx_rtehtmlareaapi {
         * @return      string          acronym Javascript array
         */
        function buildJSAcronymArray($languageUid) {
-               global $TYPO3_CONF_VARS, $TYPO3_DB;
+               global $TYPO3_DB;
+
+               $charset = $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'] ? $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'] : 'iso-8859-1';
 
                $button = 'acronym';
                $PIDList = 0;
                if (is_array($this->thisConfig['buttons.']) && is_array($this->thisConfig['buttons.'][$button.'.']) && trim($this->thisConfig['buttons.'][$button.'.']['PIDList'])) {
                        $PIDList = implode(',', t3lib_div::trimExplode(',', $this->thisConfig['buttons.'][$button.'.']['PIDList']));
                }
-               $linebreak = $TYPO3_CONF_VARS['EXTCONF'][$this->htmlAreaRTE->ID]['enableCompressedScripts'] ? '' : chr(10);
+               $linebreak = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->htmlAreaRTE->ID]['enableCompressedScripts'] ? '' : chr(10);
                $JSAcronymArray .= 'acronyms = { ' . $linebreak;
                $JSAbbreviationArray .= 'abbreviations = { ' . $linebreak;
                $table = 'tx_rtehtmlarea_acronym';
@@ -131,8 +133,8 @@ class tx_rtehtmlarea_acronym extends tx_rtehtmlareaapi {
                $whereClause .= t3lib_BEfunc::deleteClause($table);
                $res = $TYPO3_DB->exec_SELECTquery('type,term,acronym', $table, $whereClause);
                while($acronymRow = $TYPO3_DB->sql_fetch_assoc($res))    {
-                       if( $acronymRow['type'] == 1) $JSAcronymArray .= (($this->acronymIndex++)?',':'') . '"' . $acronymRow['acronym'] . '":"' . $acronymRow['term'] . '"' . $linebreak;
-                       if ($acronymRow['type'] == 2) $JSAbbreviationArray .= (($this->AbbreviationIndex++)?',':'') . '"' . $acronymRow['acronym'] . '":"' . $acronymRow['term'] . '"' . $linebreak;
+                       if( $acronymRow['type'] == 1) $JSAcronymArray .= (($this->acronymIndex++)?',':'') . '"' . $GLOBALS['LANG']->csConvObj->utf8_encode($acronymRow['term'], $charset) . '":"' . $GLOBALS['LANG']->csConvObj->utf8_encode($acronymRow['acronym'], $charset) . '"' . $linebreak;
+                       if ($acronymRow['type'] == 2) $JSAbbreviationArray .= (($this->AbbreviationIndex++)?',':'') . '"' . $GLOBALS['LANG']->csConvObj->utf8_encode($acronymRow['term'], $charset) . '":"' . $GLOBALS['LANG']->csConvObj->utf8_encode($acronymRow['acronym'], $charset) . '"' . $linebreak;
                }
                $JSAcronymArray .= '};' . $linebreak;
                $JSAbbreviationArray .= '};' . $linebreak;