Fixed bug #9310: table border colour popups appear only when textcolour button is...
authorStanislas Rolland <typo3@sjbr.ca>
Mon, 15 Sep 2008 17:23:10 +0000 (17:23 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Mon, 15 Sep 2008 17:23:10 +0000 (17:23 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@4130 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php
typo3/sysext/rtehtmlarea/class.tx_rtehtmlareaapi.php
typo3/sysext/rtehtmlarea/extensions/QuickTag/class.tx_rtehtmlarea_quicktag.php
typo3/sysext/rtehtmlarea/extensions/TableOperations/class.tx_rtehtmlarea_tableoperations.php

index 4b624c2..efc60fc 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-09-15  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #9310: table border colour popups appear only when textcolour button is shown
+
 2008-09-15  Ingo Renner  <ingo@typo3.org>
 
        * Added feature 9097: Introduce a new caching framework (backported from FLOW3)
index ac3c034..d56fd08 100644 (file)
@@ -1,3 +1,7 @@
+2008-09-15  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #9310: table border colour popups appear only when textcolour button is shown
+
 2008-09-14  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #9308: htmlArea RTE: link on colour name doesn't set colour
index b692e6b..b9f29c4 100644 (file)
@@ -137,7 +137,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
        var $toolbarOrderArray = array();
        protected $pluginEnabledArray = array();                // Array of plugin id's enabled in the current RTE editing area
        protected $pluginEnabledCumulativeArray = array();      // Cumulative array of plugin id's enabled so far in any of the RTE editing areas of the form
-       public $registeredPlugins = array();                    // Array of registered plugins indexd by their plugin Id's
+       public $registeredPlugins = array();                    // Array of registered plugins indexed by their plugin Id's
        
        /**
         * Returns true if the RTE is available. Here you check if the browser requirements are met.
@@ -665,7 +665,21 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        }
                }
                $this->toolbar = array_diff($this->toolbar, $hideLabels);
-               
+
+                       // Adding plugins declared as prerequisites by enabled plugins
+               $requiredPlugins = array();
+               foreach ($this->registeredPlugins as $pluginId => $plugin) {
+                       if ($this->isPluginEnabled($pluginId)) {
+                               $requiredPlugins = array_merge($requiredPlugins, t3lib_div::trimExplode(',', $plugin->getRequiredPlugins(), 1));
+                       }
+               }
+               $requiredPlugins = array_unique($requiredPlugins);
+               foreach ($requiredPlugins as $pluginId) {
+                       if (is_object($this->registeredPlugins[$pluginId]) && !$this->isPluginEnabled($pluginId)) {
+                               $this->pluginEnabledArray[] = $pluginId;
+                       }
+               }
+
                        // Completing the toolbar converion array for htmlArea
                foreach ($this->registeredPlugins as $pluginId => $plugin) {
                        if ($this->isPluginEnabled($pluginId)) {
index d1614d0..5fd135c 100644 (file)
@@ -50,6 +50,7 @@ abstract class tx_rtehtmlareaapi {
        protected $convertToolbarForHtmlAreaArray = array();    // The name-converting array, converting the button names used in the RTE PageTSConfing to the button id's used by the JS scripts
        protected $requiresClassesConfiguration = false;        // True if the registered plugin requires the PageTSConfig Classes configuration
        protected $requiresSynchronousLoad = false;             // True if the plugin must be loaded synchronously
+       protected $requiredPlugins = '';                        // The comma-separated list of names of prerequisite plugins
 
        /**
         * Returns true if the plugin is available and correctly initialized
@@ -66,7 +67,7 @@ abstract class tx_rtehtmlareaapi {
                $this->thisConfig =& $this->htmlAreaRTE->thisConfig;
                $this->toolbar =& $this->htmlAreaRTE->toolbar;
                $this->LOCAL_LANG =& $this->htmlAreaRTE->LOCAL_LANG;
-               
+
                        // Set the value of this boolean based on the initial value of $this->pluginButtons
                $this->pluginAddsButtons = !empty($this->pluginButtons);
 
@@ -74,6 +75,7 @@ abstract class tx_rtehtmlareaapi {
                if ($this->htmlAreaRTE->is_FE() && $TYPO3_CONF_VARS['EXTCONF'][$this->rteExtensionKey]['plugins'][$this->pluginName]['disableInFE']) {
                        return false;
                }
+
                        // Localization array must be initialized here
                if ($this->relativePathToLocallangFile) {
                        if ($this->htmlAreaRTE->is_FE()) {
@@ -220,6 +222,14 @@ abstract class tx_rtehtmlareaapi {
                $this->requiresSynchronousLoad = $value;
        }
 
+       /**
+        * Returns the list of plugins required by the plugin
+        *
+        * @return      string          the list of plugins required by the plugin
+        */
+       public function getRequiredPlugins() {
+               return $this->requiredPlugins;
+       }
 } // end of class
 
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/class.tx_rtehtmlareaapi.php']) {
index d979124..98f46a3 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 @@
 /**
  * CharacterMap plugin for htmlArea RTE
  *
- * @author Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+ * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
  *
  * TYPO3 SVN ID: $Id$
  *
@@ -47,6 +47,15 @@ class tx_rtehtmlarea_quicktag extends tx_rtehtmlareaapi {
        protected $convertToolbarForHtmlAreaArray = array (
                'inserttag'     => 'InsertTag',
                );
+       protected $requiredPlugins = 'TYPO3Color';      // The comma-separated list of names of prerequisite plugins
+       
+       public function main($parentObject) {
+               $available = parent::main($parentObject);
+               if ($this->thisConfig['disableSelectColor'] && $this->htmlAreaRTE->client['BROWSER'] != 'gecko') {
+                       $this->requiredPlugins = 'DefaultColor';
+               }
+               return $available;
+       }
        
        /**
         * Return JS configuration of the htmlArea plugins registered by the extension
index 2798488..b2cd3ab 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 @@
 /**
  * Table Operations extension for htmlArea RTE
  *
- * @author Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
+ * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
  *
  * TYPO3 SVN ID: $Id$
  *
@@ -43,6 +43,7 @@ class tx_rtehtmlarea_tableoperations extends tx_rtehtmlareaapi {
        protected $toolbar;                                     // Reference to RTE toolbar array
        protected $LOCAL_LANG;                                  // Frontend language array
        protected $requiresClassesConfiguration = true;         // True if the registered plugin requires the PageTSConfig Classes configuration
+       protected $requiredPlugins = 'TYPO3Color';              // The comma-separated list of names of prerequisite plugins
        
        protected $pluginButtons = 'table, toggleborders, tableproperties, tablerestyle, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit,
                                                columnproperties, columninsertbefore, columninsertafter, columndelete, columnsplit,
@@ -71,14 +72,15 @@ class tx_rtehtmlarea_tableoperations extends tx_rtehtmlareaapi {
                );
        
        public function main($parentObject) {
-               global $TYPO3_CONF_VARS;
                
                $available = parent::main($parentObject);
                
                if ($this->htmlAreaRTE->client['BROWSER'] == 'opera') {
                        $this->thisConfig['hideTableOperationsInToolbar'] = 0;
                }
-               
+               if ($this->thisConfig['disableSelectColor'] && $this->htmlAreaRTE->client['BROWSER'] != 'gecko') {
+                       $this->requiredPlugins = 'DefaultColor';
+               }
                return $available;
        }