Added feature #13580: htmlArea RTE: Extjize the RTE
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / class.tx_rtehtmlareaapi.php
index 6378fae..790bd03 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2007-2008 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  (c) 2007-2009 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the Typo3 project. The Typo3 project is
@@ -30,8 +30,6 @@
  *
  */
 
-require_once(PATH_t3lib.'class.t3lib_div.php');
-
 abstract class tx_rtehtmlareaapi {
 
        protected $extensionKey;                                // The key of the extension that is extending htmlArea RTE
@@ -49,6 +47,8 @@ abstract class tx_rtehtmlareaapi {
        protected $pluginAddsButtons = true;                    // Boolean indicating whether the plugin is adding buttons or not
        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
@@ -60,12 +60,12 @@ abstract class tx_rtehtmlareaapi {
        public function main($parentObject) {
                global $TYPO3_CONF_VARS, $LANG, $TSFE;
 
-               $this->htmlAreaRTE =& $parentObject;
+               $this->htmlAreaRTE = $parentObject;
                $this->rteExtensionKey =& $this->htmlAreaRTE->ID;
                $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);
 
@@ -73,6 +73,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()) {
@@ -153,7 +154,7 @@ abstract class tx_rtehtmlareaapi {
        public function getPathToPluginDirectory() {
                return ($this->relativePathToPluginDirectory ? $this->htmlAreaRTE->httpTypo3Path . t3lib_extMgm::siteRelPath($this->extensionKey) . $this->relativePathToPluginDirectory : '');
        }
-       
+
        /**
         * Returns a boolean indicating whether the plugin adds buttons or not to the toolbar
         *
@@ -199,6 +200,34 @@ abstract class tx_rtehtmlareaapi {
                return $this->requiresClassesConfiguration;
        }
 
+       /**
+        * Returns true if the plugin requires synchronous load
+        *
+        * @return      boolean         true if the plugin requires synchronous load
+        */
+       public function requiresSynchronousLoad() {
+               return $this->requiresSynchronousLoad;
+       }
+
+       /**
+        * Sets the plugin to require synchronous load or not
+        *
+        * @param       boolean         $value: the boolean value to set
+        *
+        * @return      void
+        */
+       public function setSynchronousLoad($value = true) {
+               $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']) {