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
00093 class t3lib_admin {
00094 var $genTree_includeDeleted = TRUE;
00095 var $genTree_includeVersions = TRUE;
00096 var $genTree_includeRecords = FALSE;
00097 var $perms_clause = '';
00098 var $genTree_makeHTML = 0;
00099
00100
00101 var $page_idArray = Array();
00102 var $rec_idArray = Array();
00103 var $getTree_HTML = '';
00104 var $backPath = '';
00105
00106
00107 var $checkFileRefs = Array();
00108 var $checkSelectDBRefs = Array();
00109 var $checkGroupDBRefs = Array();
00110
00111 var $recStats = Array(
00112 'allValid' => array(),
00113 'published_versions' => array(),
00114 'deleted' => array(),
00115 );
00116 var $lRecords = Array();
00117 var $lostPagesList = '';
00118
00119
00128 function genTree($theID, $depthData, $versions=FALSE) {
00129
00130 if ($versions) {
00131 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00132 'uid,title,doktype,deleted,t3ver_wsid,t3ver_id,t3ver_count,t3ver_swapmode'.(t3lib_extMgm::isLoaded('cms')?',hidden':''),
00133 'pages',
00134 'pid=-1 AND t3ver_oid='.intval($theID).' '.((!$this->genTree_includeDeleted)?'AND deleted=0':'').$this->perms_clause,
00135 '',
00136 'sorting'
00137 );
00138 } else {
00139 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00140 'uid,title,doktype,deleted'.(t3lib_extMgm::isLoaded('cms')?',hidden':''),
00141 'pages',
00142 'pid='.intval($theID).' '.((!$this->genTree_includeDeleted)?'AND deleted=0':'').$this->perms_clause,
00143 '',
00144 'sorting'
00145 );
00146 }
00147
00148
00149 $a = 0;
00150 $c = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
00151 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
00152
00153
00154 if ($versions) {
00155 $versionLabel = '[v1.'.$row['t3ver_id'].'; WS#'.$row['t3ver_wsid'].']';
00156 } else $versionLabel='';
00157
00158 $a++;
00159 $newID = $row['uid'];
00160
00161
00162 if ($this->genTree_makeHTML) {
00163 $this->genTree_HTML.=chr(10).'<div><span class="nobr">';
00164 $PM = 'join';
00165 $LN = ($a==$c)?'blank':'line';
00166 $BTM = ($a==$c)?'bottom':'';
00167 $this->genTree_HTML.= $depthData.
00168 '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$PM.$BTM.'.gif','width="18" height="16"').' align="top" alt="" />'.
00169 $versionLabel.
00170 t3lib_iconWorks::getIconImage('pages',$row,$this->backPath,'align="top"').
00171 htmlspecialchars($row['uid'].': '.t3lib_div::fixed_lgd_cs(strip_tags($row['title']),50)).'</span></div>';
00172 }
00173
00174
00175 $this->page_idArray[$newID]=$row;
00176
00177 $this->recStats['all_valid']['pages'][$newID] = $newID;
00178 # if ($versions) $this->recStats['versions']['pages'][$newID] = $newID;
00179 if ($row['deleted']) $this->recStats['deleted']['pages'][$newID] = $newID;
00180 if ($versions && $row['t3ver_count']>=1) {
00181 $this->recStats['published_versions']['pages'][$newID] = $newID;
00182 }
00183
00184 if ($row['deleted']) {$this->recStat['deleted']++;}
00185 if ($row['hidden']) {$this->recStat['hidden']++;}
00186 $this->recStat['doktype'][$row['doktype']]++;
00187
00188
00189 $genHTML = $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' align="top" alt="" />'.$versionLabel;
00190
00191
00192 if ($this->genTree_includeRecords) {
00193 foreach($GLOBALS['TCA'] as $tableName => $cfg) {
00194 if ($tableName!='pages') {
00195 $this->genTree_records($newID, $this->genTree_HTML ? $genHTML : '', $tableName);
00196 }
00197 }
00198 }
00199
00200
00201 $this->genTree($newID, $this->genTree_HTML ? $genHTML : '');
00202
00203
00204 if ($this->genTree_includeVersions) {
00205 $this->genTree($newID, $this->genTree_HTML ? $genHTML : '', TRUE);
00206 }
00207 }
00208 }
00209
00217 function genTree_records($theID, $depthData, $table='', $versions=FALSE) {
00218 global $TCA;
00219
00220 if ($versions) {
00221
00222 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00223 t3lib_BEfunc::getCommonSelectFields($table),
00224 $table,
00225 'pid=-1 AND t3ver_oid='.intval($theID).
00226 (!$this->genTree_includeDeleted?t3lib_BEfunc::deleteClause($table):'')
00227 );
00228 } else {
00229
00230 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00231 t3lib_BEfunc::getCommonSelectFields($table),
00232 $table,
00233 'pid='.intval($theID).
00234 (!$this->genTree_includeDeleted?t3lib_BEfunc::deleteClause($table):'')
00235 );
00236 }
00237
00238
00239 $a = 0;
00240 $c = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
00241 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
00242
00243
00244 if ($versions) {
00245 $versionLabel = '[v1.'.$row['t3ver_id'].'; WS#'.$row['t3ver_wsid'].']';
00246 } else $versionLabel='';
00247
00248 $a++;
00249 $newID = $row['uid'];
00250
00251
00252 if ($this->genTree_makeHTML) {
00253 $this->genTree_HTML.=chr(10).'<div><span class="nobr">';
00254 $PM = 'join';
00255 $LN = ($a==$c)?'blank':'line';
00256 $BTM = ($a==$c)?'bottom':'';
00257 $this->genTree_HTML.= $depthData.
00258 '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$PM.$BTM.'.gif','width="18" height="16"').' align="top" alt="" />'.
00259 $versionLabel.
00260 t3lib_iconWorks::getIconImage($table,$row,$this->backPath,'align="top" title="'.$table.'"').htmlspecialchars($row['uid'].': '.t3lib_BEfunc::getRecordTitle($table,$row)).'</span></div>';
00261 }
00262
00263
00264 $this->rec_idArray[$table][$newID]=$row;
00265
00266 $this->recStats['all_valid'][$table][$newID] = $newID;
00267 # $this->recStats[$versions?'versions':'live'][$table][$newID] = $newID;
00268 if ($row['deleted']) $this->recStats['deleted'][$table][$newID] = $newID;
00269 if ($versions && $row['t3ver_count']>=1 && $row['t3ver_wsid']==0) {
00270 $this->recStats['published_versions'][$table][$newID] = $newID;
00271 }
00272
00273 # if ($row['deleted']) {$this->recStat['deleted']++;}
00274 # if ($row['hidden']) {$this->recStat['hidden']++;}
00275
00276
00277
00278
00279 if ($this->genTree_includeVersions && $TCA[$table]['ctrl']['versioningWS']) {
00280 $genHTML = $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' align="top" alt="" />';
00281
00282 $this->genTree_records($newID, $genHTML, $table, TRUE);
00283 }
00284 }
00285 }
00286
00292 function genTreeStatus($root=0) {
00293 $this->genTree_includeDeleted = TRUE;
00294 $this->genTree_includeVersions = TRUE;
00295 $this->genTree_includeRecords = TRUE;
00296 $this->perms_clause = '';
00297 $this->genTree_makeHTML = 0;
00298
00299 $this->genTree($root,'');
00300
00301 return $this->recStats;
00302 }
00303
00304
00305
00306
00307
00308
00315 function lostRecords($pid_list) {
00316 global $TCA;
00317 reset($TCA);
00318 $this->lostPagesList='';
00319 if ($pid_list) {
00320 while (list($table)=each($TCA)) {
00321 t3lib_div::loadTCA($table);
00322
00323 $pid_list_tmp = $pid_list;
00324 if (!isset($TCA[$table]['ctrl']['versioningWS']) || !$TCA[$table]['ctrl']['versioningWS']) {
00325
00326 $pid_list_tmp = preg_replace('/^\-1,/','',$pid_list_tmp);
00327 }
00328
00329 $garbage = $GLOBALS['TYPO3_DB']->exec_SELECTquery (
00330 'uid,pid,'.$TCA[$table]['ctrl']['label'],
00331 $table,
00332 'pid NOT IN ('.$pid_list_tmp.')'
00333 );
00334 $lostIdList = array();
00335 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($garbage)) {
00336 $this->lRecords[$table][$row['uid']]=Array('uid'=>$row['uid'], 'pid'=>$row['pid'], 'title'=> strip_tags($row[$TCA[$table]['ctrl']['label']]) );
00337 $lostIdList[]=$row['uid'];
00338 }
00339 if ($table=='pages') {
00340 $this->lostPagesList=implode(',',$lostIdList);
00341 }
00342 }
00343 }
00344 }
00345
00353 function fixLostRecord($table,$uid) {
00354 if ($table && $GLOBALS['TCA'][$table] && $uid && is_array($this->lRecords[$table][$uid]) && $GLOBALS['BE_USER']->user['admin']) {
00355
00356 $updateFields = array();
00357 $updateFields['pid'] = 0;
00358 if ($GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['disabled']) {
00359 $updateFields[$GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['disabled']] = 1;
00360 }
00361
00362 $GLOBALS['TYPO3_DB']->exec_UPDATEquery($table, 'uid='.intval($uid), $updateFields);
00363
00364 return TRUE;
00365 } else return FALSE;
00366 }
00367
00374 function countRecords($pid_list) {
00375 global $TCA;
00376 reset($TCA);
00377 $list=Array();
00378 $list_n=Array();
00379 if ($pid_list) {
00380 while (list($table)=each($TCA)) {
00381 t3lib_div::loadTCA($table);
00382
00383 $pid_list_tmp = $pid_list;
00384 if (!isset($TCA[$table]['ctrl']['versioningWS']) || !$TCA[$table]['ctrl']['versioningWS']) {
00385
00386 $pid_list_tmp = preg_replace('/^\-1,/','',$pid_list_tmp);
00387 }
00388
00389 $count = $GLOBALS['TYPO3_DB']->exec_SELECTquery('count(*)', $table, 'pid IN ('.$pid_list_tmp.')');
00390 if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_row($count)) {
00391 $list[$table]=$row[0];
00392 }
00393
00394 $count = $GLOBALS['TYPO3_DB']->exec_SELECTquery('count(*)', $table, 'pid IN ('.$pid_list_tmp.')'.t3lib_BEfunc::deleteClause($table));
00395 if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_row($count)) {
00396 $list_n[$table]=$row[0];
00397 }
00398 }
00399 }
00400 return array('all' => $list, 'non_deleted' => $list_n);
00401 }
00402
00409 function getGroupFields($mode) {
00410 global $TCA;
00411 reset ($TCA);
00412 $result = Array();
00413 while (list($table)=each($TCA)) {
00414 t3lib_div::loadTCA($table);
00415 $cols = $TCA[$table]['columns'];
00416 reset ($cols);
00417 while (list($field,$config)=each($cols)) {
00418 if ($config['config']['type']=='group') {
00419 if (
00420 ((!$mode||$mode=='file') && $config['config']['internal_type']=='file') ||
00421 ((!$mode||$mode=='db') && $config['config']['internal_type']=='db')
00422 ) {
00423 $result[$table][]=$field;
00424 }
00425 }
00426 if ( (!$mode||$mode=='db') && $config['config']['type']=='select' && $config['config']['foreign_table']) {
00427 $result[$table][]=$field;
00428 }
00429 }
00430 if ($result[$table]) {
00431 $result[$table] = implode(',',$result[$table]);
00432 }
00433 }
00434 return $result;
00435 }
00436
00443 function getFileFields($uploadfolder) {
00444 global $TCA;
00445 reset ($TCA);
00446 $result = Array();
00447 while (list($table)=each($TCA)) {
00448 t3lib_div::loadTCA($table);
00449 $cols = $TCA[$table]['columns'];
00450 reset ($cols);
00451 while (list($field,$config)=each($cols)) {
00452 if ($config['config']['type']=='group' && $config['config']['internal_type']=='file' && $config['config']['uploadfolder']==$uploadfolder) {
00453 $result[]=Array($table,$field);
00454 }
00455 }
00456 }
00457 return $result;
00458 }
00459
00466 function getDBFields($theSearchTable) {
00467 global $TCA;
00468 $result = Array();
00469 reset ($TCA);
00470 while (list($table)=each($TCA)) {
00471 t3lib_div::loadTCA($table);
00472 $cols = $TCA[$table]['columns'];
00473 reset ($cols);
00474 while (list($field,$config)=each($cols)) {
00475 if ($config['config']['type']=='group' && $config['config']['internal_type']=='db') {
00476 if (trim($config['config']['allowed'])=='*' || strstr($config['config']['allowed'],$theSearchTable)) {
00477 $result[]=Array($table,$field);
00478 }
00479 } else if ($config['config']['type']=='select' && $config['config']['foreign_table']==$theSearchTable) {
00480 $result[]=Array($table,$field);
00481 }
00482 }
00483 }
00484 return $result;
00485 }
00486
00494 function selectNonEmptyRecordsWithFkeys($fkey_arrays) {
00495 global $TCA;
00496 if (is_array($fkey_arrays)) {
00497 reset($fkey_arrays);
00498 while (list($table,$field_list)=each($fkey_arrays)) {
00499 if ($TCA[$table] && trim($field_list)) {
00500 t3lib_div::loadTCA($table);
00501 $fieldArr = explode(',',$field_list);
00502
00503 if(t3lib_extMgm::isLoaded('dbal')) {
00504 $fields = $GLOBALS['TYPO3_DB']->admin_get_fields($table);
00505 reset($fields);
00506 list(,$field)=each($fieldArr);
00507 $cl_fl = ($GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'I' || $GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'N' || $GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'R') ?
00508 $field.'!=0' : $field.'!=\'\'';
00509 while (list(,$field)=each($fieldArr)) {
00510 $cl_fl .= ($GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'I' || $GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'N' || $GLOBALS['TYPO3_DB']->MetaType($fields[$field]['type'],$table) == 'R') ?
00511 ' OR '.$field.'!=0' : ' OR '.$field.'!=\'\'';
00512 }
00513 unset($fields);
00514 }
00515 else {
00516 $cl_fl = implode ('!="" OR ',$fieldArr). '!=""';
00517 }
00518
00519 $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid,'.$field_list, $table, $cl_fl);
00520 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres)) {
00521 reset($fieldArr);
00522 while (list(,$field)=each($fieldArr)) {
00523 if (trim($row[$field])) {
00524 $fieldConf = $TCA[$table]['columns'][$field]['config'];
00525 if ($fieldConf['type']=='group') {
00526 if ($fieldConf['internal_type']=='file') {
00527
00528 if ($fieldConf['MM']) {
00529 $tempArr=array();
00530 $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
00531 $dbAnalysis->start('','files',$fieldConf['MM'],$row['uid']);
00532 reset($dbAnalysis->itemArray);
00533 while (list($somekey,$someval)=each($dbAnalysis->itemArray)) {
00534 if ($someval['id']) {
00535 $tempArr[]=$someval['id'];
00536 }
00537 }
00538 } else {
00539 $tempArr = explode(',',trim($row[$field]));
00540 }
00541 reset($tempArr);
00542 while (list(,$file)=each($tempArr)) {
00543 $file = trim($file);
00544 if ($file) {
00545 $this->checkFileRefs[$fieldConf['uploadfolder']][$file]+=1;
00546 }
00547 }
00548 }
00549 if ($fieldConf['internal_type']=='db') {
00550
00551 $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
00552 $dbAnalysis->start($row[$field],$fieldConf['allowed'],$fieldConf['MM'],$row['uid'], $table, $fieldConf);
00553 reset($dbAnalysis->itemArray);
00554 while (list(,$tempArr)=each($dbAnalysis->itemArray)) {
00555 $this->checkGroupDBRefs[$tempArr['table']][$tempArr['id']]+=1;
00556 }
00557 }
00558 }
00559 if ($fieldConf['type']=='select' && $fieldConf['foreign_table']) {
00560
00561 $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
00562 $dbAnalysis->start($row[$field],$fieldConf['foreign_table'],$fieldConf['MM'],$row['uid'], $table, $fieldConf);
00563 reset($dbAnalysis->itemArray);
00564 while (list(,$tempArr)=each($dbAnalysis->itemArray)) {
00565 if ($tempArr['id']>0) {
00566 $this->checkGroupDBRefs[$fieldConf['foreign_table']][$tempArr['id']]+=1;
00567 }
00568 }
00569 }
00570 }
00571 }
00572 }
00573 }
00574 }
00575 }
00576 }
00577
00583 function testFileRefs () {
00584 $output=Array();
00585 reset($this->checkFileRefs);
00586 while(list($folder,$fileArr)=each($this->checkFileRefs)) {
00587 $path = PATH_site.$folder;
00588 if (@is_dir($path)) {
00589 $d = dir($path);
00590 while($entry=$d->read()) {
00591 if (@is_file($path.'/'.$entry)) {
00592 if (isset($fileArr[$entry])) {
00593 if ($fileArr[$entry] > 1) {
00594 $temp = $this->whereIsFileReferenced($folder,$entry);
00595 $tempList = '';
00596 while(list(,$inf)=each($temp)) {
00597 $tempList.='['.$inf['table'].']['.$inf['uid'].']['.$inf['field'].'] (pid:'.$inf['pid'].') - ';
00598 }
00599 $output['moreReferences'][] = Array($path,$entry,$fileArr[$entry],$tempList);
00600 }
00601 unset($fileArr[$entry]);
00602 } else {
00603 if (!strstr($entry,'index.htm')) {
00604 $output['noReferences'][] = Array($path,$entry);
00605 }
00606 }
00607 }
00608 }
00609 $d->close();
00610 reset($fileArr);
00611 $tempCounter=0;
00612 while(list($file,)=each($fileArr)) {
00613 $temp = $this->whereIsFileReferenced($folder,$file);
00614 $tempList = '';
00615 while(list(,$inf)=each($temp)) {
00616 $tempList.='['.$inf['table'].']['.$inf['uid'].']['.$inf['field'].'] (pid:'.$inf['pid'].') - ';
00617 }
00618 $tempCounter++;
00619 $output['noFile'][substr($path,-3).'_'.substr($file,0,3).'_'.$tempCounter] = Array($path,$file,$tempList);
00620 }
00621 } else {
00622 $output['error'][] = Array($path);
00623 }
00624 }
00625 return $output;
00626 }
00627
00634 function testDBRefs($theArray) {
00635 global $TCA;
00636 reset($theArray);
00637 while(list($table,$dbArr)=each($theArray)) {
00638 if ($TCA[$table]) {
00639 $idlist = Array();
00640 while(list($id,)=each($dbArr)) {
00641 $idlist[]=$id;
00642 }
00643 $theList = implode(',',$idlist);
00644 if ($theList) {
00645 $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', $table, 'uid IN ('.$theList.')'.t3lib_BEfunc::deleteClause($table));
00646 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres)) {
00647 if (isset($dbArr[$row['uid']])) {
00648 unset ($dbArr[$row['uid']]);
00649 } else {
00650 $result.='Strange Error. ...<br />';
00651 }
00652 }
00653 reset($dbArr);
00654 while (list($theId,$theC)=each($dbArr)) {
00655 $result.='There are '.$theC.' records pointing to this missing or deleted record; ['.$table.']['.$theId.']<br />';
00656 }
00657 }
00658 } else {
00659 $result.='Codeerror. Table is not a table...<br />';
00660 }
00661 }
00662 return $result;
00663 }
00664
00672 function whereIsRecordReferenced($searchTable,$id) {
00673 global $TCA;
00674 $fileFields = $this->getDBFields($searchTable);
00675 $theRecordList=Array();
00676 while (list(,$info)=each($fileFields)) {
00677 $table=$info[0]; $field=$info[1];
00678 t3lib_div::loadTCA($table);
00679 $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00680 'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field,
00681 $table,
00682 $field.' LIKE \'%'.$GLOBALS['TYPO3_DB']->quoteStr($id, $table).'%\''
00683 );
00684 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres)) {
00685
00686 $fieldConf = $TCA[$table]['columns'][$field]['config'];
00687 $allowedTables = ($fieldConf['type']=='group') ? $fieldConf['allowed'] : $fieldConf['foreign_table'];
00688
00689 $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
00690 $dbAnalysis->start($row[$field],$allowedTables,$fieldConf['MM'],$row['uid'], $table, $fieldConf);
00691 reset($dbAnalysis->itemArray);
00692 while (list(,$tempArr)=each($dbAnalysis->itemArray)) {
00693 if ($tempArr['table']==$searchTable && $tempArr['id']==$id) {
00694 $theRecordList[]=Array('table'=>$table,'uid'=>$row['uid'],'field'=>$field,'pid'=>$row['pid']);
00695 }
00696 }
00697 }
00698 }
00699 return $theRecordList;
00700 }
00701
00709 function whereIsFileReferenced($uploadfolder,$filename) {
00710 global $TCA;
00711 $fileFields = $this->getFileFields($uploadfolder);
00712 $theRecordList=Array();
00713 while (list(,$info)=each($fileFields)) {
00714 $table=$info[0]; $field=$info[1];
00715 $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
00716 'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field,
00717 $table,
00718 $field.' LIKE \'%'.$GLOBALS['TYPO3_DB']->quoteStr($filename, $table).'%\''
00719 );
00720 while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres)) {
00721
00722 $tempArr = explode(',',trim($row[$field]));
00723 while (list(,$file)=each($tempArr)) {
00724 $file = trim($file);
00725 if ($file==$filename) {
00726 $theRecordList[]=Array('table'=>$table,'uid'=>$row['uid'],'field'=>$field,'pid'=>$row['pid']);
00727 }
00728 }
00729 }
00730 }
00731 return $theRecordList;
00732 }
00733 }
00734
00735
00736 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_admin.php']) {
00737 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_admin.php']);
00738 }
00739 ?>