[BUGFIX] Adjustments to FAL-enabled RTE image and link dialogues
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / class.tx_rtehtmlareaapi.php
index d1614d0..ca1ce4c 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2007-2008 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  (c) 2007-2011 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the Typo3 project. The Typo3 project is
  *
  * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
  *
- * TYPO3 SVN ID: $Id$
- *
  */
 
-require_once(PATH_t3lib.'class.t3lib_div.php');
-
-abstract class tx_rtehtmlareaapi {
+abstract class tx_rtehtmlarea_api {
 
        protected $extensionKey;                                // The key of the extension that is extending htmlArea RTE
        protected $pluginName;                                  // The name of the plugin registered by the extension
@@ -46,34 +42,36 @@ abstract class tx_rtehtmlareaapi {
        protected $LOCAL_LANG;                                  // Frontend language array
        protected $pluginButtons = '';                          // The comma-separated list of button names that the registered plugin is adding to the htmlArea RTE toolbar
        protected $pluginLabels = '';                           // The comma-separated list of label names that the registered plugin is adding to the htmlArea RTE toolbar
-       protected $pluginAddsButtons = true;                    // Boolean indicating whether the plugin is adding buttons or not
+       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 $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
+        * Returns TRUE if the plugin is available and correctly initialized
         *
         * @param       object          Reference to parent object, which is an instance of the htmlArea RTE
         *
-        * @return      boolean         true if this plugin object should be made available in the current environment and is correctly initialized
+        * @return      boolean         TRUE if this plugin object should be made available in the current environment and is correctly initialized
         */
        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);
 
                        // Check if the plugin should be disabled in frontend
                if ($this->htmlAreaRTE->is_FE() && $TYPO3_CONF_VARS['EXTCONF'][$this->rteExtensionKey]['plugins'][$this->pluginName]['disableInFE']) {
-                       return false;
+                       return FALSE;
                }
+
                        // Localization array must be initialized here
                if ($this->relativePathToLocallangFile) {
                        if ($this->htmlAreaRTE->is_FE()) {
@@ -82,7 +80,7 @@ abstract class tx_rtehtmlareaapi {
                                $LANG->includeLLFile('EXT:' . $this->extensionKey . '/' . $this->relativePathToLocallangFile);
                        }
                }
-               return true;
+               return TRUE;
        }
 
        /**
@@ -154,7 +152,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
         *
@@ -192,18 +190,18 @@ abstract class tx_rtehtmlareaapi {
        }
 
        /**
-        * Returns true if the extension requires the PageTSConfig Classes configuration
+        * Returns TRUE if the extension requires the PageTSConfig Classes configuration
         *
-        * @return      boolean         true if the extension requires the PageTSConfig Classes configuration
+        * @return      boolean         TRUE if the extension requires the PageTSConfig Classes configuration
         */
        public function requiresClassesConfiguration() {
                return $this->requiresClassesConfiguration;
        }
 
        /**
-        * Returns true if the plugin requires synchronous load
+        * Returns TRUE if the plugin requires synchronous load
         *
-        * @return      boolean         true if the plugin requires synchronous load
+        * @return      boolean         TRUE if the plugin requires synchronous load
         */
        public function requiresSynchronousLoad() {
                return $this->requiresSynchronousLoad;
@@ -216,14 +214,22 @@ abstract class tx_rtehtmlareaapi {
         *
         * @return      void
         */
-       public function setSynchronousLoad($value = true) {
+       public function setSynchronousLoad($value = TRUE) {
                $this->requiresSynchronousLoad = $value;
        }
 
-} // end of class
-
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/class.tx_rtehtmlareaapi.php']) {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/class.tx_rtehtmlareaapi.php']);
+       /**
+        * 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;
+       }
+}
+/*
+ * Class alias for backward compatibility (TYPO3 4.5)
+ */
+abstract class tx_rtehtmlareaapi extends tx_rtehtmlarea_api {
 }
-
 ?>
\ No newline at end of file