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
00075 require_once (PATH_t3lib.'class.t3lib_loaddbgroup.php');
00076 require_once (PATH_t3lib.'class.t3lib_loadmodules.php');
00077 require_once (PATH_t3lib.'class.t3lib_parsehtml_proc.php');
00078 require_once (PATH_t3lib.'class.t3lib_flexformtools.php');
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00098 class t3lib_transferData {
00099
00100 var $lockRecords=0;
00101 var $disableRTE=0;
00102 var $prevPageID = '';
00103 var $defVals=array();
00104 var $addRawData = FALSE;
00105
00106
00107 var $regTableItems = Array();
00108 var $regTableItems_data = Array();
00109 var $loadModules='';
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00137 function fetchRecord($table,$idList,$operation) {
00138 global $TCA;
00139
00140 if ((string)$idList == 'prev') {$idList = $this->prevPageID;}
00141
00142 if ($TCA[$table]) {
00143 t3lib_div::loadTCA($table);
00144
00145
00146 $ids = t3lib_div::trimExplode(',',$idList,1);
00147 foreach($ids as $id) {
00148 if (strcmp($id,'')) {
00149
00150
00151 if ($operation=='new') {
00152
00153
00154 $newRow = Array();
00155
00156
00157 $TCAdefaultOverride = $GLOBALS['BE_USER']->getTSConfigProp('TCAdefaults');
00158 if (is_array($TCAdefaultOverride[$table.'.'])) {
00159 foreach($TCAdefaultOverride[$table.'.'] as $theF => $theV) {
00160 if (isset($TCA[$table]['columns'][$theF])) {
00161 $newRow[$theF]=$theV;
00162 }
00163 }
00164 }
00165
00166
00167 if (is_array($this->defVals[$table])) {
00168 foreach($this->defVals[$table] as $theF => $theV) {
00169 if (isset($TCA[$table]['columns'][$theF])) {
00170 $newRow[$theF]=$theV;
00171 }
00172 }
00173 }
00174
00175
00176 if ($id<0 && $TCA[$table]['ctrl']['useColumnsForDefaultValues']) {
00177
00178 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $table, 'uid='.abs($id).t3lib_BEfunc::deleteClause($table));
00179 if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
00180
00181 $fArr=t3lib_div::trimExplode(',',$TCA[$table]['ctrl']['useColumnsForDefaultValues'],1);
00182 while(list(,$theF)=each($fArr)) {
00183 if (isset($TCA[$table]['columns'][$theF])) {
00184 $newRow[$theF]=$row[$theF];
00185 }
00186 }
00187 }
00188 $GLOBALS['TYPO3_DB']->sql_free_result($res);
00189 }
00190
00191
00192 $this->renderRecord($table, uniqid('NEW'), $id, $newRow);
00193 } else {
00194 $id=intval($id);
00195
00196
00197 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $table, 'uid='.intval($id).t3lib_BEfunc::deleteClause($table));
00198 if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
00199 t3lib_BEfunc::fixVersioningPid($table,$row);
00200 $this->renderRecord($table, $id, $row['pid'], $row);
00201 $contentTable = $GLOBALS['TYPO3_CONF_VARS']['SYS']['contentTable'];
00202 $this->lockRecord($table, $id, $contentTable==$table?$row['pid']:0);
00203 }
00204 $GLOBALS['TYPO3_DB']->sql_free_result($res);
00205 }
00206 }
00207 }
00208 }
00209 }
00210
00224 function renderRecord($table, $id, $pid, $row) {
00225 global $TCA;
00226
00227
00228 $uniqueItemRef = $table.'_'.$id;
00229 t3lib_div::loadTCA($table);
00230
00231
00232 list($tscPID)=t3lib_BEfunc::getTSCpid($table,$id,$pid);
00233 $TSconfig = t3lib_BEfunc::getTCEFORM_TSconfig($table,array_merge($row,array('uid'=>$id,'pid'=>$pid)));
00234
00235
00236 if (!$this->regTableItems[$uniqueItemRef]) {
00237 $this->regTableItems[$uniqueItemRef] = 1;
00238
00239
00240 if ($table == 'pages') {$this->prevPageID = $id;}
00241
00242 $this->regTableItems_data[$uniqueItemRef] = $this->renderRecordRaw($table, $id, $pid, $row, $TSconfig, $tscPID);
00243
00244
00245 if ($this->addRawData && is_array($row) && is_array($this->regTableItems_data[$uniqueItemRef])) {
00246 $this->regTableItems_data[$uniqueItemRef] = array_merge($row, $this->regTableItems_data[$uniqueItemRef]);
00247 }
00248 }
00249 }
00250
00251
00252
00268 function renderRecordRaw($table, $id, $pid, $row, $TSconfig='', $tscPID=0) {
00269 global $TCA;
00270
00271 if(!is_array($TSconfig)) {
00272 $TSconfig = array();
00273 }
00274
00275
00276 $totalRecordContent=array();
00277
00278
00279
00280 t3lib_div::loadTCA($table);
00281 $copyOfColumns = $TCA[$table]['columns'];
00282 foreach($copyOfColumns as $field => $fieldConfig) {
00283
00284 if (isset($row[$field])) {
00285 $data = $row[$field];
00286 } else {
00287 $data = $fieldConfig['config']['default'];
00288 }
00289
00290 $data = $this->renderRecord_SW($data,$fieldConfig,$TSconfig,$table,$row,$field);
00291
00292
00293 $totalRecordContent[$field] = isset($data) ? $data : '';
00294 }
00295
00296
00297
00298 $types_fieldConfig = t3lib_BEfunc::getTCAtypes($table,$totalRecordContent);
00299 if (is_array($types_fieldConfig)) {
00300 $totalRecordContent = $this->renderRecord_typesProc($totalRecordContent,$types_fieldConfig,$tscPID,$table,$pid);
00301 }
00302
00303
00304 foreach($totalRecordContent as $field => $data) {
00305 $this->regItem($table,$id,$field,$data);
00306 }
00307
00308
00309 reset($totalRecordContent);
00310
00311 return $totalRecordContent;
00312
00313 }
00314
00326 function renderRecord_SW($data,$fieldConfig,$TSconfig,$table,$row,$field) {
00327
00328 switch((string)$fieldConfig['config']['type']) {
00329 case 'group':
00330 $data = $this->renderRecord_groupProc($data,$fieldConfig,$TSconfig,$table,$row,$field);
00331 break;
00332 case 'select':
00333 $data = $this->renderRecord_selectProc($data,$fieldConfig,$TSconfig,$table,$row,$field);
00334 break;
00335 case 'flex':
00336 $data = $this->renderRecord_flexProc($data,$fieldConfig,$TSconfig,$table,$row,$field);
00337 break;
00338 }
00339
00340 return $data;
00341 }
00342
00356 function renderRecord_groupProc($data,$fieldConfig,$TSconfig,$table,$row,$field) {
00357 switch ($fieldConfig['config']['internal_type']) {
00358 case 'file':
00359
00360 $dataAcc=array();
00361
00362
00363 if ($fieldConfig['config']['MM']) {
00364 $loadDB = t3lib_div::makeInstance('t3lib_loadDBGroup');
00365 $loadDB->start('', 'files', $fieldConfig['config']['MM'], $row['uid']);
00366
00367 foreach($loadDB->itemArray as $value) {
00368 if ($value['id']) {
00369 $dataAcc[]=rawurlencode($value['id']).'|'.rawurlencode($value['id']);
00370 }
00371 }
00372 } else {
00373 $fileList = t3lib_div::trimExplode(',',$data,1);
00374 foreach($fileList as $value) {
00375 if ($value) {
00376 $dataAcc[]=rawurlencode($value).'|'.rawurlencode($value);
00377 }
00378 }
00379 }
00380
00381 $data = implode(',',$dataAcc);
00382 break;
00383 case 'db':
00384 $loadDB = t3lib_div::makeInstance('t3lib_loadDBGroup');
00385 $loadDB->start($data, $fieldConfig['config']['allowed'], $fieldConfig['config']['MM'], $row['uid']);
00386 $loadDB->getFromDB();
00387 $data = $loadDB->readyForInterface();
00388 break;
00389 }
00390
00391 return $data;
00392 }
00393
00407 function renderRecord_selectProc($data,$fieldConfig,$TSconfig,$table,$row,$field) {
00408 global $TCA;
00409
00410
00411 $elements = t3lib_div::trimExplode(',',$data,1);
00412 $dataAcc=array();
00413
00414
00415 if (intval($fieldConfig['config']['maxitems'])>1) {
00416
00417
00418 if (is_array($fieldConfig['config']['items'])) {
00419 $fieldConfig['config']['items'] = $this->procesItemArray($fieldConfig['config']['items'], $fieldConfig['config'], $TSconfig[$field], $table, $row, $field);
00420 foreach($fieldConfig['config']['items'] as $pvpv) {
00421 foreach($elements as $eKey => $value) {
00422 if (!strcmp($value,$pvpv[1])) {
00423 $dataAcc[$eKey]=rawurlencode($pvpv[1]).'|'.rawurlencode($this->sL($pvpv[0]));
00424 }
00425 }
00426 }
00427 }
00428
00429
00430 if ($fieldConfig['config']['special']) {
00431 $dataAcc = $this->selectAddSpecial($dataAcc, $elements, $fieldConfig['config']['special']);
00432 }
00433
00434
00435 if ($TCA[$fieldConfig['config']['foreign_table']]) {
00436 $dataAcc = $this->selectAddForeign($dataAcc, $elements, $fieldConfig, $field, $TSconfig, $row);
00437 }
00438
00439
00440 ksort($dataAcc);
00441 } else {
00442 if ($TCA[$fieldConfig['config']['foreign_table']]) {
00443
00444 $dataIds = $this->getDataIdList($elements, $fieldConfig, $row);
00445
00446 if (!count($dataIds)) $dataIds = array(0);
00447 $dataAcc[]=$dataIds[0];
00448 } else {
00449 $dataAcc[]=$elements[0];
00450 }
00451 }
00452
00453 return implode(',',$dataAcc);
00454 }
00455
00470 function renderRecord_flexProc($data,$fieldConfig,$TSconfig,$table,$row,$field) {
00471 global $TCA;
00472
00473
00474 $currentValueArray = t3lib_div::xml2array($data);
00475 if (is_array($currentValueArray)) {
00476
00477
00478 $dataStructArray = t3lib_BEfunc::getFlexFormDS($fieldConfig['config'],$row,$table);
00479 if (is_array($dataStructArray)) {
00480 $currentValueArray['data'] = $this->renderRecord_flexProc_procInData($currentValueArray['data'],$dataStructArray,array($data,$fieldConfig,$TSconfig,$table,$row,$field));
00481
00482 $flexObj = t3lib_div::makeInstance('t3lib_flexformtools');
00483 $data = $flexObj->flexArray2Xml($currentValueArray, TRUE);
00484 }
00485 }
00486
00487 return $data;
00488 }
00489
00501 function renderRecord_typesProc($totalRecordContent,$types_fieldConfig,$tscPID,$table,$pid) {
00502 foreach($types_fieldConfig as $vconf) {
00503
00504
00505 $eFile = t3lib_parsehtml_proc::evalWriteFile($vconf['spec']['static_write'],$totalRecordContent);
00506
00507
00508 if (is_array($eFile)) {
00509 if ($eFile['loadFromFileField'] && $totalRecordContent[$eFile['loadFromFileField']]) {
00510
00511 $SW_fileContent = t3lib_div::getUrl($eFile['editFile']);
00512 $parseHTML = t3lib_div::makeInstance('t3lib_parsehtml_proc');
00513 $parseHTML->init('','');
00514
00515 $totalRecordContent[$vconf['field']] = $parseHTML->getSubpart(
00516 $SW_fileContent,
00517 $eFile['markerField']&&trim($totalRecordContent[$eFile['markerField']])
00518 ? trim($totalRecordContent[$eFile['markerField']])
00519 : '###TYPO3_STATICFILE_EDIT###'
00520 );
00521 }
00522 }
00523 }
00524
00525 return $totalRecordContent;
00526 }
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00557 function renderRecord_flexProc_procInData($dataPart,$dataStructArray,$pParams) {
00558 if (is_array($dataPart)) {
00559 foreach($dataPart as $sKey => $sheetDef) {
00560 list ($dataStruct,$actualSheet) = t3lib_div::resolveSheetDefInDS($dataStructArray,$sKey);
00561
00562 if (is_array($dataStruct) && $actualSheet==$sKey && is_array($sheetDef)) {
00563 foreach($sheetDef as $lKey => $lData) {
00564 $this->renderRecord_flexProc_procInData_travDS(
00565 $dataPart[$sKey][$lKey],
00566 $dataStruct['ROOT']['el'],
00567 $pParams
00568 );
00569 }
00570 }
00571 }
00572 }
00573
00574 return $dataPart;
00575 }
00576
00586 function renderRecord_flexProc_procInData_travDS(&$dataValues,$DSelements,$pParams) {
00587 if (is_array($DSelements)) {
00588
00589
00590 foreach($DSelements as $key => $dsConf) {
00591
00592
00593 if ($DSelements[$key]['type']=='array') {
00594 if (is_array($dataValues[$key]['el'])) {
00595 if ($DSelements[$key]['section']) {
00596 foreach($dataValues[$key]['el'] as $ik => $el) {
00597 $theKey = key($el);
00598 if (is_array($dataValues[$key]['el'][$ik][$theKey]['el'])) {
00599 $this->renderRecord_flexProc_procInData_travDS(
00600 $dataValues[$key]['el'][$ik][$theKey]['el'],
00601 $DSelements[$key]['el'][$theKey]['el'],
00602 $pParams
00603 );
00604 }
00605 }
00606 } else {
00607 if (!isset($dataValues[$key]['el'])) $dataValues[$key]['el']=array();
00608 $this->renderRecord_flexProc_procInData_travDS(
00609 $dataValues[$key]['el'],
00610 $DSelements[$key]['el'],
00611 $pParams
00612 );
00613 }
00614 }
00615 } else {
00616 if (is_array($dsConf['TCEforms']['config']) && is_array($dataValues[$key])) {
00617 foreach($dataValues[$key] as $vKey => $data) {
00618
00619
00620 list(,,$CVTSconfig,$CVtable,$CVrow,$CVfield) = $pParams;
00621 ;
00622
00623 if (!isset($dataValues[$key][$vKey])) {
00624 $dataValues[$key][$vKey] = $dsConf['TCEforms']['config']['default'];
00625 }
00626
00627
00628 $dataValues[$key][$vKey] = $this->renderRecord_SW($dataValues[$key][$vKey],$dsConf['TCEforms'],$CVTSconfig,$CVtable,$CVrow,'');
00629 }
00630 }
00631 }
00632 }
00633 }
00634 }
00635
00636
00637
00638
00639
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650
00651
00652
00663 function selectAddSpecial($dataAcc, $elements, $specialKey) {
00664 global $TCA;
00665
00666
00667 switch ((string)$specialKey) {
00668 case 'tables':
00669 $tNames = array_keys($TCA);
00670 foreach($tNames as $tableName) {
00671 foreach($elements as $eKey => $value) {
00672 if (!strcmp($tableName,$value)) {
00673 $dataAcc[$eKey]=rawurlencode($value).'|'.rawurlencode($this->sL($TCA[$value]['ctrl']['title']));
00674 }
00675 }
00676 }
00677 break;
00678 case 'pagetypes':
00679 $theTypes = $TCA['pages']['columns']['doktype']['config']['items'];
00680 if (is_array($theTypes)) {
00681 foreach($theTypes as $theTypesArrays) {
00682 foreach($elements as $eKey => $value) {
00683 if (!strcmp($theTypesArrays[1],$value)) {
00684 $dataAcc[$eKey]=rawurlencode($value).'|'.rawurlencode($this->sL($theTypesArrays[0]));
00685 }
00686 }
00687 }
00688 }
00689 break;
00690 case 'exclude':
00691 $theExcludeFields = t3lib_BEfunc::getExcludeFields();
00692
00693 if (is_array($theExcludeFields)) {
00694 foreach($theExcludeFields as $theExcludeFieldsArrays) {
00695 foreach($elements as $eKey => $value) {
00696 if (!strcmp($theExcludeFieldsArrays[1],$value)) {
00697 $dataAcc[$eKey]=rawurlencode($value).'|'.rawurlencode(ereg_replace(':$','',$theExcludeFieldsArrays[0]));
00698 }
00699 }
00700 }
00701 }
00702 break;
00703 case 'explicitValues':
00704 $theTypes = t3lib_BEfunc::getExplicitAuthFieldValues();
00705
00706 foreach($theTypes as $tableFieldKey => $theTypeArrays) {
00707 if (is_array($theTypeArrays['items'])) {
00708 foreach($theTypeArrays['items'] as $itemValue => $itemContent) {
00709 foreach($elements as $eKey => $value) {
00710 if (!strcmp($tableFieldKey.':'.$itemValue.':'.$itemContent[0], $value)) {
00711 $dataAcc[$eKey] = rawurlencode($value).'|'.rawurlencode('['.$itemContent[2].'] '.$itemContent[1]);
00712 }
00713 }
00714 }
00715 }
00716 }
00717 break;
00718 case 'languages':
00719 $theLangs = t3lib_BEfunc::getSystemLanguages();
00720 foreach($theLangs as $lCfg) {
00721 foreach($elements as $eKey => $value) {
00722 if (!strcmp($lCfg[1], $value)) {
00723 $dataAcc[$eKey] = rawurlencode($value).'|'.rawurlencode($lCfg[0]);
00724 }
00725 }
00726 }
00727 break;
00728 case 'custom':
00729 $customOptions = $GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions'];
00730
00731 if (is_array($customOptions)) {
00732 foreach($customOptions as $coKey => $coValue) {
00733 if (is_array($coValue['items'])) {
00734
00735 foreach($coValue['items'] as $itemKey => $itemCfg) {
00736 foreach($elements as $eKey => $value) {
00737 if (!strcmp($coKey.':'.$itemKey, $value)) {
00738 $dataAcc[$eKey] = rawurlencode($value).'|'.rawurlencode($this->sL($itemCfg[0]));
00739 }
00740 }
00741 }
00742 }
00743 }
00744 }
00745 break;
00746 case 'modListGroup':
00747 case 'modListUser':
00748 if (!$this->loadModules) {
00749 $this->loadModules = t3lib_div::makeInstance('t3lib_loadModules');
00750 $this->loadModules->load($GLOBALS['TBE_MODULES']);
00751 }
00752 $modList = ($specialKey=='modListUser') ? $this->loadModules->modListUser : $this->loadModules->modListGroup;
00753
00754 foreach($modList as $theModName) {
00755 foreach($elements as $eKey => $value) {
00756 $label = '';
00757
00758 $pp = explode('_',$value);
00759 if (count($pp)>1) $label.=$GLOBALS['LANG']->moduleLabels['tabs'][$pp[0].'_tab'].'>';
00760
00761 $label.= $GLOBALS['LANG']->moduleLabels['tabs'][$value.'_tab'];
00762
00763 if (!strcmp($theModName,$value)) {
00764 $dataAcc[$eKey]=rawurlencode($value).'|'.rawurlencode($label);
00765 }
00766 }
00767 }
00768 break;
00769 }
00770
00771 return $dataAcc;
00772 }
00773
00787 function selectAddForeign($dataAcc, $elements, $fieldConfig, $field, $TSconfig, $row) {
00788 global $TCA;
00789
00790
00791 $recordList = Array();
00792
00793
00794 $subres = t3lib_BEfunc::exec_foreign_table_where_query($fieldConfig,$field,$TSconfig);
00795 while ($subrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($subres)) {
00796 $recordList[$subrow['uid']] = t3lib_BEfunc::getRecordTitle($fieldConfig['config']['foreign_table'],$subrow);
00797 }
00798
00799
00800 if (is_array($TCA[$fieldConfig['config']['neg_foreign_table']])) {
00801 $subres = t3lib_BEfunc::exec_foreign_table_where_query($fieldConfig,$field,$TSconfig,'neg_');
00802 while ($subrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($subres)) {
00803 $recordList[-$subrow['uid']] = t3lib_BEfunc::getRecordTitle($fieldConfig['config']['neg_foreign_table'],$subrow);
00804 }
00805 }
00806
00807
00808
00809 $dataIds = $this->getDataIdList($elements, $fieldConfig, $row);
00810 if ($fieldConfig['config']['MM']) $dataAcc=array();
00811
00812
00813 foreach($dataIds as $theId) {
00814 if (isset($recordList[$theId])) {
00815 $lPrefix = $this->sL($fieldConfig['config'][($theId>0?'':'neg_').'foreign_table_prefix']);
00816 if ($fieldConfig['config']['MM']) {
00817 $dataAcc[]=rawurlencode($theId).'|'.rawurlencode(t3lib_div::fixed_lgd_cs($lPrefix.strip_tags($recordList[$theId]),$GLOBALS['BE_USER']->uc['titleLen']));
00818 } else {
00819 foreach($elements as $eKey => $value) {
00820 if (!strcmp($theId,$value)) {
00821 $dataAcc[$eKey]=rawurlencode($theId).'|'.rawurlencode(t3lib_div::fixed_lgd_cs($lPrefix.strip_tags($recordList[$theId]),$GLOBALS['BE_USER']->uc['titleLen']));
00822 }
00823 }
00824 }
00825 }
00826 }
00827
00828 return $dataAcc;
00829 }
00830
00840 function getDataIdList($elements, $fieldConfig, $row) {
00841 $loadDB = t3lib_div::makeInstance('t3lib_loadDBGroup');
00842 $loadDB->registerNonTableValues=$fieldConfig['config']['allowNonIdValues'] ? 1 : 0;
00843 $loadDB->start(implode(',',$elements), $fieldConfig['config']['foreign_table'].','.$fieldConfig['config']['neg_foreign_table'], $fieldConfig['config']['MM'], $row['uid']);
00844
00845 $idList = $loadDB->convertPosNeg($loadDB->getValueArray(),$fieldConfig['config']['foreign_table'],$fieldConfig['config']['neg_foreign_table']);
00846
00847 return $idList;
00848 }
00849
00863 function procesItemArray($selItems,$config,$fieldTSConfig,$table,$row,$field) {
00864 $selItems = $this->addItems($selItems,$fieldTSConfig['addItems.']);
00865 if ($config['itemsProcFunc']) $selItems = $this->procItems($selItems,$fieldTSConfig['itemsProcFunc.'],$config,$table,$row,$field);
00866 return $selItems;
00867 }
00868
00878 function addItems($items,$iArray) {
00879 if (is_array($iArray)) {
00880 foreach($iArray as $value => $label) {
00881 $items[]=array($label,$value);
00882 }
00883 }
00884 return $items;
00885 }
00886
00900 function procItems($items,$itemsProcFuncTSconfig,$config,$table,$row,$field) {
00901 $params=array();
00902 $params['items'] = &$items;
00903 $params['config'] = $config;
00904 $params['TSconfig'] = $itemsProcFuncTSconfig;
00905 $params['table'] = $table;
00906 $params['row'] = $row;
00907 $params['field'] = $field;
00908
00909 t3lib_div::callUserFunction($config['itemsProcFunc'],$params,$this);
00910 return $items;
00911 }
00912
00913
00914
00915
00916
00917
00918
00919
00920
00921
00922
00923
00924
00925
00926
00935 function lockRecord($table, $id, $pid=0) {
00936 if ($this->lockRecords) {
00937 t3lib_BEfunc::lockRecords($table,$id,$pid);
00938 }
00939 }
00940
00952 function regItem($table, $id, $field, $content) {
00953 }
00954
00962 function sL($in) {
00963 return $GLOBALS['LANG']->sL($in);
00964 }
00965 }
00966
00967
00968 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_transferdata.php']) {
00969 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_transferdata.php']);
00970 }
00971 ?>