[FEATURE] Add a value slider as wizard to tceforms
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_rteapi.php
old mode 100755 (executable)
new mode 100644 (file)
index 52f25a5..eeef97e
@@ -1,79 +1,51 @@
 <?php
 /***************************************************************
-*  Copyright notice
-*
-*  (c) 2004 Kasper Skaarhoj (kasper@typo3.com)
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license
-*  from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-/**
- * RTE API parent class.
- *
- * @author     Kasper Skårhøj <kasper@typo3.com>
- */
-/**
- * [CLASS/FUNCTION INDEX of SCRIPT]
+ *  Copyright notice
  *
+ *  (c) 2004-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
+ *  All rights reserved
  *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
  *
- *   64: class t3lib_rteapi
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
  *
- *              SECTION: Main API functions;
- *   93:     function isAvailable()
- *  118:     function drawRTE(&$pObj,$table,$field,$row,$PA,$specConf,$thisConfig,$RTEtypeVal,$RTErelPath,$thePidValue)
- *  151:     function transformContent($dirRTE,$value,$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$pid)
  *
- *              SECTION: Helper functions
- *  197:     function triggerField($fieldName)
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
- * TOTAL FUNCTIONS: 4
- * (This index is automatically created/updated by the extension "extdeveval")
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * RTE API parent class.
  *
+ * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 
 
-
-
-
 /**
  * RTE base class: Delivers browser-detection, TCEforms binding and transformation routines for the "rte" extension, registering it with the RTE API in TYPO3 3.6.0
  * See "rte" extension for usage.
  *
- * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  * @package TYPO3
  * @subpackage t3lib
  */
 class t3lib_rteapi {
 
                // Internal, dynamic:
-       var $errorLog = array();                // Error messages regarding non-availability is collected here.
+       var $errorLog = array(); // Error messages regarding non-availability is collected here.
 
                // Internal, static:
-       var $ID = '';                                   // Set this to the extension key of the RTE so it can identify itself.
-
-
-
-
-
-
+       var $ID = ''; // Set this to the extension key of the RTE so it can identify itself.
 
 
        /***********************************
@@ -85,18 +57,20 @@ class t3lib_rteapi {
         **********************************/
 
        /**
-        * Returns true if the RTE is available. Here you check if the browser requirements are met.
+        * Returns TRUE if the RTE is available. Here you check if the browser requirements are met.
         * If there are reasons why the RTE cannot be displayed you simply enter them as text in ->errorLog
         *
         * @return      boolean         TRUE if this RTE object offers an RTE in the current browser environment
         */
-       function isAvailable()  {
-               global $CLIENT;
-
+       function isAvailable() {
                $this->errorLog = array();
-               if (!$CLIENT['FORMSTYLE'])      $this->errorLog[] = 'RTE API: Browser didn\'t support styles';
+               if (!$GLOBALS['CLIENT']['FORMSTYLE']) {
+                       $this->errorLog[] = 'RTE API: Browser didn\'t support styles';
+               }
 
-               if (!count($this->errorLog))    return TRUE;
+               if (!count($this->errorLog)) {
+                       return TRUE;
+               }
        }
 
        /**
@@ -115,17 +89,18 @@ class t3lib_rteapi {
         * @param       integer         PID value of record (true parent page id)
         * @return      string          HTML code for RTE!
         */
-       function drawRTE(&$pObj,$table,$field,$row,$PA,$specConf,$thisConfig,$RTEtypeVal,$RTErelPath,$thePidValue)      {
+       function drawRTE(&$pObj, $table, $field, $row, $PA, $specConf, $thisConfig, $RTEtypeVal, $RTErelPath, $thePidValue) {
 
                        // Transform value:
-               $value = $this->transformContent('rte',$PA['itemFormElValue'],$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$thePidValue);
+               $value = $this->transformContent('rte', $PA['itemFormElValue'], $table, $field, $row, $specConf, $thisConfig, $RTErelPath, $thePidValue);
 
                        // Create item:
                $item = '
-                       '.$this->triggerField($PA['itemFormElName']).'
-                       <textarea name="'.htmlspecialchars($PA['itemFormElName']).'"'.$pObj->formWidthText('48','off').' rows="20" wrap="off" style="background-color: #99eebb;">'.
-                       t3lib_div::formatForTextarea($value).
-                       '</textarea>';
+                       ' . $this->triggerField($PA['itemFormElName']) . '
+                       <textarea name="' . htmlspecialchars($PA['itemFormElName']) . '"' .
+                               $pObj->formWidthText('48', 'off') . ' rows="20" wrap="off" style="background-color: #99eebb;">' .
+                               t3lib_div::formatForTextarea($value) .
+                               '</textarea>';
 
                        // Return form item:
                return $item;
@@ -148,18 +123,18 @@ class t3lib_rteapi {
         * @param       integer         PID value of record (true parent page id)
         * @return      string          Transformed content
         */
-       function transformContent($dirRTE,$value,$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$pid)     {
+       function transformContent($dirRTE, $value, $table, $field, $row, $specConf, $thisConfig, $RTErelPath, $pid) {
 
-#debug(array($dirRTE,$value,$table,$field,array(),$specConf,$thisConfig,$RTErelPath,$pid));
+               #debug(array($dirRTE,$value,$table,$field,array(),$specConf,$thisConfig,$RTErelPath,$pid));
 
-               if ($specConf['rte_transform']) {
+               if ($specConf['rte_transform']) {
                        $p = t3lib_BEfunc::getSpecConfParametersFromArray($specConf['rte_transform']['parameters']);
-                       if ($p['mode']) {       // There must be a mode set for transformation
-#debug($p['mode'],'MODE');
+                       if ($p['mode']) { // There must be a mode set for transformation
+                               #debug($p['mode'],'MODE');
 
                                        // Initialize transformation:
                                $parseHTML = t3lib_div::makeInstance('t3lib_parsehtml_proc');
-                               $parseHTML->init($table.':'.$field, $pid);
+                               $parseHTML->init($table . ':' . $field, $pid);
                                $parseHTML->setRelPath($RTErelPath);
 
                                        // Perform transformation:
@@ -167,21 +142,11 @@ class t3lib_rteapi {
                        }
                }
 
-#debug(array($dirRTE,$value),'OUT: '.$dirRTE);
+               #debug(array($dirRTE,$value),'OUT: '.$dirRTE);
                return $value;
        }
 
 
-
-
-
-
-
-
-
-
-
-
        /***********************************
         *
         * Helper functions
@@ -194,15 +159,23 @@ class t3lib_rteapi {
         * @param       string          Field name of the RTE field.
         * @return      string          <input> field of type "hidden" with a flag telling the TCEmain that this fields content should be traansformed back to database state.
         */
-       function triggerField($fieldName)       {
+       function triggerField($fieldName) {
 
-               $triggerFieldName = ereg_replace('\[([^]]+)\]$','[_TRANSFORM_\1]', $fieldName);
-               return '<input type="hidden" name="'.htmlspecialchars($triggerFieldName).'" value="RTE" />';
+               $triggerFieldName = preg_replace('/\[([^]]+)\]$/', '[_TRANSFORM_\1]', $fieldName);
+               return '<input type="hidden" name="' . htmlspecialchars($triggerFieldName) . '" value="RTE" />';
        }
 }
 
-// Include extension?
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php'])  {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php']);
+/**
+ * @deprecated since TYPO3 4.4: Use XCLASS t3lib/class.t3lib_rteapi.php instead. Will be removed in TYPO3 4.6.
+ */
+if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php'])) {
+       t3lib_div::deprecationLog('XCLASS "ext/rte/class.tx_rte_base.php" is deprecated since TYPO3 4.4 - use "t3lib/class.t3lib_rteapi.php" instead.');
+       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php']);
+}
+
+if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_rteapi.php'])) {
+       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_rteapi.php']);
 }
-?>
+
+?>
\ No newline at end of file