* Fixed bug #7944: htmlArea RTE: Configuration of mutually exclusive classes in very...
authorStanislas Rolland <typo3@sjbr.ca>
Wed, 26 Mar 2008 22:43:19 +0000 (22:43 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Wed, 26 Mar 2008 22:43:19 +0000 (22:43 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@3474 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php
typo3/sysext/rtehtmlarea/doc/manual.sxw

index 9f8f19d..9ede926 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-03-26  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #7944: htmlArea RTE: Configuration of mutually exclusive classes in very error prone
+
 2008-03-24  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #7934: HTMLArea RTE block style and text style may present disallowed classes
index c88bfa3..8d553c3 100644 (file)
@@ -1,3 +1,7 @@
+2008-03-26  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #7944: htmlArea RTE: Configuration of mutually exclusive classes in very error prone
+
 2008-03-24  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #7934: HTMLArea RTE block style and text style may present disallowed classes
index 3679afe..8b09b5d 100644 (file)
@@ -1015,7 +1015,6 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                
                        // Scanning the list of classes if specified in the RTE config
                if (is_array($RTEProperties['classes.']))  {
-                       $stylesheet = '';
                        foreach ($RTEProperties['classes.'] as $className => $conf) {
                                $className = substr($className,0,-1);
                                $classLabel = $this->getPageConfigLabel($conf['name']);
@@ -1029,17 +1028,21 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                                        $JSClassesAlternatingArray .= ($indexAlternating?',':'') . '"' . $className . '":' . (is_array($conf['alternating.']) ? $this->buildNestedJSArray($conf['alternating.']) : ' "false"') . $linebreak;
                                        $indexAlternating++;
                                }
-                               if (is_array($RTEProperties['mutuallyExclusiveClasses.']))  {
-                                       foreach ($RTEProperties['mutuallyExclusiveClasses.'] as $listName => $conf) {
-                                               if (t3lib_div::inList($conf, $className)) {
-                                                       $JSClassesXORArray .= ($index?',':'') . '"' . $className . '": /^(' . implode('|', t3lib_div::trimExplode(',', t3lib_div::rmFromList($className, $conf), 1)) . ')$/i' . $linebreak;
-                                                       break;
-                                               }
-                                       }
-                               }
                                $index++;
                        }
                }
+                       // Scanning the list of sets of mutually exclusives classes if specified in the RTE config
+               $index = 0;
+               if (is_array($RTEProperties['mutuallyExclusiveClasses.']))  {
+                       foreach ($RTEProperties['mutuallyExclusiveClasses.'] as $listName => $conf) {
+                               $classArray = t3lib_div::trimExplode(',', $conf, 1);
+                               $classList = implode(',', $classArray);
+                               foreach ($classArray as $className) {
+                                       $JSClassesXORArray .= ($index?',':'') . '"' . $className . '": /^(' . implode('|', t3lib_div::trimExplode(',', t3lib_div::rmFromList($className, $classList), 1)) . ')$/i' . $linebreak;
+                                       $index++;
+                               }
+                       }
+               }
                $JSClassesLabelsArray .= '};' . $linebreak;
                $JSClassesValuesArray .= '};' . $linebreak;
                $JSClassesNoShowArray .= '};' . $linebreak;
index 2287335..dc2e140 100644 (file)
Binary files a/typo3/sysext/rtehtmlarea/doc/manual.sxw and b/typo3/sysext/rtehtmlarea/doc/manual.sxw differ