00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00064 class t3lib_rteapi {
00065
00066
00067 var $errorLog = array();
00068
00069
00070 var $ID = '';
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00093 function isAvailable() {
00094 global $CLIENT;
00095
00096 $this->errorLog = array();
00097 if (!$CLIENT['FORMSTYLE']) $this->errorLog[] = 'RTE API: Browser didn\'t support styles';
00098
00099 if (!count($this->errorLog)) return TRUE;
00100 }
00101
00118 function drawRTE(&$pObj,$table,$field,$row,$PA,$specConf,$thisConfig,$RTEtypeVal,$RTErelPath,$thePidValue) {
00119
00120
00121 $value = $this->transformContent('rte',$PA['itemFormElValue'],$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$thePidValue);
00122
00123
00124 $item = '
00125 '.$this->triggerField($PA['itemFormElName']).'
00126 <textarea name="'.htmlspecialchars($PA['itemFormElName']).'"'.$pObj->formWidthText('48','off').' rows="20" wrap="off" style="background-color: #99eebb;">'.
00127 t3lib_div::formatForTextarea($value).
00128 '</textarea>';
00129
00130
00131 return $item;
00132 }
00133
00151 function transformContent($dirRTE,$value,$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$pid) {
00152
00153 #debug(array($dirRTE,$value,$table,$field,array(),$specConf,$thisConfig,$RTErelPath,$pid));
00154
00155 if ($specConf['rte_transform']) {
00156 $p = t3lib_BEfunc::getSpecConfParametersFromArray($specConf['rte_transform']['parameters']);
00157 if ($p['mode']) {
00158 #debug($p['mode'],'MODE');
00159
00160
00161 $parseHTML = t3lib_div::makeInstance('t3lib_parsehtml_proc');
00162 $parseHTML->init($table.':'.$field, $pid);
00163 $parseHTML->setRelPath($RTErelPath);
00164
00165
00166 $value = $parseHTML->RTE_transform($value, $specConf, $dirRTE, $thisConfig);
00167 }
00168 }
00169
00170 #debug(array($dirRTE,$value),'OUT: '.$dirRTE);
00171 return $value;
00172 }
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00197 function triggerField($fieldName) {
00198
00199 $triggerFieldName = ereg_replace('\[([^]]+)\]$','[_TRANSFORM_\1]', $fieldName);
00200 return '<input type="hidden" name="'.htmlspecialchars($triggerFieldName).'" value="RTE" />';
00201 }
00202 }
00203
00204
00205 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php']) {
00206 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/class.tx_rte_base.php']);
00207 }
00208 ?>