Index: C:/Documents and Settings/Dmitry/workspace-typo3/TYPO3-HEAD/t3lib/class.t3lib_tcemain.php =================================================================== --- C:/Documents and Settings/Dmitry/workspace-typo3/TYPO3-HEAD/t3lib/class.t3lib_tcemain.php (revision 2190) +++ C:/Documents and Settings/Dmitry/workspace-typo3/TYPO3-HEAD/t3lib/class.t3lib_tcemain.php (working copy) @@ -2,7 +2,7 @@ /*************************************************************** * Copyright notice * -* (c) 1999-2006 Kasper Skaarhoj (kasperYYYY@typo3.com) +* (c) 1999-2007 Kasper Skaarhoj (kasperYYYY@typo3.com) * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -37,162 +37,167 @@ * * * - * 237: class t3lib_TCEmain - * 358: function start($data,$cmd,$altUserObject='') - * 397: function setMirror($mirror) - * 422: function setDefaultsFromUserTS($userTS) - * 445: function process_uploads($postFiles) - * 483: function process_uploads_traverseArray(&$outputArr,$inputArr,$keyToSet) + * 242: class t3lib_TCEmain + * 367: function start($data,$cmd,$altUserObject='') + * 406: function setMirror($mirror) + * 431: function setDefaultsFromUserTS($userTS) + * 454: function process_uploads($postFiles) + * 492: function process_uploads_traverseArray(&$outputArr,$inputArr,$keyToSet) * * SECTION: PROCESSING DATA - * 519: function process_datamap() - * 869: function placeholderShadowing($table,$id) - * 905: function fillInFieldArray($table,$id,$fieldArray,$incomingFieldArray,$realPid,$status,$tscPID) + * 528: function process_datamap() + * 886: function placeholderShadowing($table,$id) + * 929: function fillInFieldArray($table,$id,$fieldArray,$incomingFieldArray,$realPid,$status,$tscPID) * * SECTION: Evaluation of input values - * 1126: function checkValue($table,$field,$value,$id,$status,$realPid,$tscPID) - * 1186: function checkValue_SW($res,$value,$tcaFieldConf,$table,$id,$curValue,$status,$realPid,$recFID,$field,$uploadedFiles,$tscPID) - * 1235: function checkValue_input($res,$value,$tcaFieldConf,$PP,$field='') - * 1273: function checkValue_check($res,$value,$tcaFieldConf,$PP) - * 1296: function checkValue_radio($res,$value,$tcaFieldConf,$PP) - * 1322: function checkValue_group_select($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field) - * 1432: function checkValue_group_select_file($valueArray,$tcaFieldConf,$curValue,$uploadedFileArray,$status,$table,$id,$recFID) - * 1601: function checkValue_flex($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field) - * 1674: function checkValue_flexArray2Xml($array, $addPrologue=FALSE) - * 1686: function _DELETE_FLEX_FORMdata(&$valueArrayToRemoveFrom,$deleteCMDS) - * 1708: function _MOVE_FLEX_FORMdata(&$valueArrayToMoveIn, $moveCMDS, $direction) - * 1748: function checkValue_inline($res,$value,$tcaFieldConf,$PP,$field) - * 1791: function checkValue_checkMax($tcaFieldConf, $valueArray) + * 1152: function checkValue($table,$field,$value,$id,$status,$realPid,$tscPID) + * 1212: function checkValue_SW($res,$value,$tcaFieldConf,$table,$id,$curValue,$status,$realPid,$recFID,$field,$uploadedFiles,$tscPID) + * 1261: function checkValue_input($res,$value,$tcaFieldConf,$PP,$field='') + * 1299: function checkValue_check($res,$value,$tcaFieldConf,$PP) + * 1322: function checkValue_radio($res,$value,$tcaFieldConf,$PP) + * 1348: function checkValue_group_select($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field) + * 1458: function checkValue_group_select_file($valueArray,$tcaFieldConf,$curValue,$uploadedFileArray,$status,$table,$id,$recFID) + * 1632: function checkValue_flex($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field) + * 1709: function checkValue_flexArray2Xml($array, $addPrologue=FALSE) + * 1721: function _DELETE_FLEX_FORMdata(&$valueArrayToRemoveFrom,$deleteCMDS) + * 1743: function _MOVE_FLEX_FORMdata(&$valueArrayToMoveIn, $moveCMDS, $direction) + * 1783: function checkValue_inline($res,$value,$tcaFieldConf,$PP,$field) + * 1825: function checkValue_checkMax($tcaFieldConf, $valueArray) * * SECTION: Helper functions for evaluation functions. - * 1843: function getUnique($table,$field,$value,$id,$newPid=0) - * 1881: function checkValue_input_Eval($value,$evalArray,$is_in) - * 1978: function checkValue_group_select_processDBdata($valueArray,$tcaFieldConf,$id,$status,$type,$currentTable) - * 2022: function checkValue_group_select_explodeSelectGroupValue($value) - * 2046: function checkValue_flex_procInData($dataPart,$dataPart_current,$uploadedFiles,$dataStructArray,$pParams,$callBackFunc='') - * 2085: function checkValue_flex_procInData_travDS(&$dataValues,$dataValues_current,$uploadedFiles,$DSelements,$pParams,$callBackFunc,$structurePath) + * 1877: function getUnique($table,$field,$value,$id,$newPid=0) + * 1915: function checkValue_input_Eval($value,$evalArray,$is_in) + * 2012: function checkValue_group_select_processDBdata($valueArray,$tcaFieldConf,$id,$status,$type,$currentTable) + * 2058: function checkValue_group_select_explodeSelectGroupValue($value) + * 2082: function checkValue_flex_procInData($dataPart,$dataPart_current,$uploadedFiles,$dataStructArray,$pParams,$callBackFunc='') + * 2121: function checkValue_flex_procInData_travDS(&$dataValues,$dataValues_current,$uploadedFiles,$DSelements,$pParams,$callBackFunc,$structurePath) * * SECTION: PROCESSING COMMANDS - * 2231: function process_cmdmap() + * 2267: function process_cmdmap() * * SECTION: Cmd: Copying - * 2371: function copyRecord($table,$uid,$destPid,$first=0,$overrideValues=array(),$excludeFields='') - * 2493: function copyPages($uid,$destPid) - * 2547: function copySpecificPage($uid,$destPid,$copyTablesArray,$first=0) - * 2581: function copyRecord_raw($table,$uid,$pid,$overrideArray=array()) - * 2645: function rawCopyPageContent($old_pid,$new_pid,$copyTablesArray) - * 2669: function insertNewCopyVersion($table,$fieldArray,$realPid) - * 2720: function copyRecord_procBasedOnFieldType($table,$uid,$field,$value,$row,$conf) - * 2791: function copyRecord_flexFormCallBack($pParams, $dsConf, $dataValue, $dataValue_ext1, $dataValue_ext2) - * 2819: function copyRecord_procFilesRefs($conf, $uid, $value) + * 2407: function copyRecord($table,$uid,$destPid,$first=0,$overrideValues=array(),$excludeFields='') + * 2529: function copyPages($uid,$destPid) + * 2583: function copySpecificPage($uid,$destPid,$copyTablesArray,$first=0) + * 2617: function copyRecord_raw($table,$uid,$pid,$overrideArray=array()) + * 2681: function rawCopyPageContent($old_pid,$new_pid,$copyTablesArray) + * 2705: function insertNewCopyVersion($table,$fieldArray,$realPid) + * 2757: function copyRecord_procBasedOnFieldType($table,$uid,$field,$value,$row,$conf,$realDestPid) + * 2836: function copyRecord_flexFormCallBack($pParams, $dsConf, $dataValue, $dataValue_ext1, $dataValue_ext2) + * 2864: function copyRecord_procFilesRefs($conf, $uid, $value) * * SECTION: Cmd: Moving, Localizing - * 2888: function moveRecord($table,$uid,$destPid) - * 3083: function moveRecord_procFields($table,$uid,$destPid) - * 3103: function moveRecord_procBasedOnFieldType($table,$uid,$destPid,$field,$value,$conf) - * 3136: function localize($table,$uid,$language) + * 2933: function moveRecord($table,$uid,$destPid) + * 3128: function moveRecord_procFields($table,$uid,$destPid) + * 3148: function moveRecord_procBasedOnFieldType($table,$uid,$destPid,$field,$value,$conf) + * 3182: function localize($table,$uid,$language) * * SECTION: Cmd: Deleting - * 3220: function deleteAction($table, $id) - * 3267: function deleteEl($table, $uid, $noRecordCheck=FALSE, $forceHardDelete=FALSE) - * 3282: function undeleteRecord($table,$uid) - * 3299: function deleteRecord($table,$uid, $noRecordCheck=FALSE, $forceHardDelete=FALSE,$undeleteRecord=FALSE) - * 3396: function deletePages($uid,$force=FALSE,$forceHardDelete=FALSE) - * 3424: function deleteSpecificPage($uid,$forceHardDelete=FALSE) - * 3447: function canDeletePage($uid) - * 3474: function cannotDeleteRecord($table,$id) - * 3493: function deleteRecord_procFields($table, $uid, $undeleteRecord = false) - * 3516: function deleteRecord_procBasedOnFieldType($table, $uid, $field, $value, $conf, $undeleteRecord = false) + * 3296: function deleteAction($table, $id) + * 3343: function deleteEl($table, $uid, $noRecordCheck=FALSE, $forceHardDelete=FALSE) + * 3360: function deleteVersionsForRecord($table, $uid, $forceHardDelete) + * 3382: function undeleteRecord($table,$uid) + * 3399: function deleteRecord($table,$uid, $noRecordCheck=FALSE, $forceHardDelete=FALSE,$undeleteRecord=FALSE) + * 3512: function deleteRecord_flexFormCallBack($dsArr, $dataValue, $PA, $structurePath, &$pObj) + * 3539: function deletePages($uid,$force=FALSE,$forceHardDelete=FALSE) + * 3567: function deleteSpecificPage($uid,$forceHardDelete=FALSE) + * 3592: function canDeletePage($uid) + * 3619: function cannotDeleteRecord($table,$id) + * 3638: function deleteRecord_procFields($table, $uid, $undeleteRecord = false) + * 3661: function deleteRecord_procBasedOnFieldType($table, $uid, $field, $value, $conf, $undeleteRecord = false) * * SECTION: Cmd: Versioning - * 3577: function versionizeRecord($table,$id,$label,$delete=FALSE,$versionizeTree=-1) - * 3653: function versionizePages($uid,$label,$versionizeTree) - * 3716: function version_swap($table,$id,$swapWith,$swapIntoWS=0) - * 3887: function version_clearWSID($table,$id) - * 3921: function version_setStage($table,$id,$stageId,$comment='') + * 3722: function versionizeRecord($table,$id,$label,$delete=FALSE,$versionizeTree=-1) + * 3798: function versionizePages($uid,$label,$versionizeTree) + * 3861: function version_swap($table,$id,$swapWith,$swapIntoWS=0) + * 4032: function version_clearWSID($table,$id) + * 4066: function version_setStage($table,$id,$stageId,$comment='') * * SECTION: Cmd: Helper functions - * 3966: function remapListedDBRecords() - * 4047: function remapListedDBRecords_flexFormCallBack($pParams, $dsConf, $dataValue, $dataValue_ext1, $dataValue_ext2) - * 4074: function remapListedDBRecords_procDBRefs($conf, $value, $MM_localUid, $table) - * 4120: function remapListedDBRecords_procInline($conf, $value, $uid, $table) + * 4111: function remapListedDBRecords() + * 4192: function remapListedDBRecords_flexFormCallBack($pParams, $dsConf, $dataValue, $dataValue_ext1, $dataValue_ext2) + * 4219: function remapListedDBRecords_procDBRefs($conf, $value, $MM_localUid, $table) + * 4265: function remapListedDBRecords_procInline($conf, $value, $uid, $table) * * SECTION: Access control / Checking functions - * 4163: function checkModifyAccessList($table) - * 4175: function isRecordInWebMount($table,$id) - * 4189: function isInWebMount($pid) - * 4203: function checkRecordUpdateAccess($table,$id) - * 4227: function checkRecordInsertAccess($insertTable,$pid,$action=1) - * 4261: function isTableAllowedForThisPage($page_uid, $checkTable) - * 4294: function doesRecordExist($table,$id,$perms) - * 4355: function doesRecordExist_pageLookUp($id, $perms) - * 4381: function doesBranchExist($inList,$pid,$perms,$recurse) - * 4415: function tableReadOnly($table) - * 4427: function tableAdminOnly($table) - * 4441: function destNotInsideSelf($dest,$id) - * 4473: function getExcludeListArray() - * 4496: function doesPageHaveUnallowedTables($page_uid,$doktype) + * 4308: function checkModifyAccessList($table) + * 4320: function isRecordInWebMount($table,$id) + * 4334: function isInWebMount($pid) + * 4348: function checkRecordUpdateAccess($table,$id) + * 4372: function checkRecordInsertAccess($insertTable,$pid,$action=1) + * 4406: function isTableAllowedForThisPage($page_uid, $checkTable) + * 4439: function doesRecordExist($table,$id,$perms) + * 4504: function doesRecordExist_pageLookUp($id, $perms) + * 4530: function doesBranchExist($inList,$pid,$perms,$recurse) + * 4564: function tableReadOnly($table) + * 4576: function tableAdminOnly($table) + * 4590: function destNotInsideSelf($dest,$id) + * 4622: function getExcludeListArray() + * 4645: function doesPageHaveUnallowedTables($page_uid,$doktype) * * SECTION: Information lookup - * 4545: function pageInfo($id,$field) - * 4565: function recordInfo($table,$id,$fieldList) - * 4586: function getRecordProperties($table,$id,$noWSOL=FALSE) - * 4602: function getRecordPropertiesFromRow($table,$row) + * 4694: function pageInfo($id,$field) + * 4714: function recordInfo($table,$id,$fieldList) + * 4735: function getRecordProperties($table,$id,$noWSOL=FALSE) + * 4751: function getRecordPropertiesFromRow($table,$row) * * SECTION: Storing data to Database Layer - * 4645: function updateDB($table,$id,$fieldArray) - * 4697: function insertDB($table,$id,$fieldArray,$newVersion=FALSE,$suggestedUid=0,$dontSetNewIdIndex=FALSE) - * 4770: function checkStoredRecord($table,$id,$fieldArray,$action) - * 4807: function setHistory($table,$id,$logId) - * 4840: function clearHistory($maxAgeSeconds=604800,$table) - * 4854: function updateRefIndex($table,$id) + * 4794: function updateDB($table,$id,$fieldArray) + * 4846: function insertDB($table,$id,$fieldArray,$newVersion=FALSE,$suggestedUid=0,$dontSetNewIdIndex=FALSE) + * 4919: function checkStoredRecord($table,$id,$fieldArray,$action) + * 4956: function setHistory($table,$id,$logId) + * 4989: function clearHistory($maxAgeSeconds=604800,$table) + * 5003: function updateRefIndex($table,$id) * * SECTION: Misc functions - * 4886: function getSortNumber($table,$uid,$pid) - * 4959: function resorting($table,$pid,$sortRow, $return_SortNumber_After_This_Uid) - * 4990: function setTSconfigPermissions($fieldArray,$TSConfig_p) - * 5007: function newFieldArray($table) - * 5039: function addDefaultPermittedLanguageIfNotSet($table,&$incomingFieldArray) - * 5063: function overrideFieldArray($table,$data) - * 5079: function compareFieldArrayWithCurrentAndUnset($table,$id,$fieldArray) - * 5125: function assemblePermissions($string) - * 5142: function rmComma($input) - * 5152: function convNumEntityToByteValue($input) - * 5174: function destPathFromUploadFolder($folder) - * 5184: function deleteClause($table) - * 5200: function getTCEMAIN_TSconfig($tscPID) - * 5215: function getTableEntries($table,$TSconfig) - * 5228: function getPID($table,$uid) - * 5241: function dbAnalysisStoreExec() - * 5257: function removeRegisteredFiles() - * 5269: function removeCacheFiles() - * 5283: function int_pageTreeInfo($CPtable,$pid,$counter, $rootID) - * 5304: function compileAdminTables() - * 5321: function fixUniqueInPid($table,$uid) - * 5357: function fixCopyAfterDuplFields($table,$uid,$prevUid,$update, $newData=array()) - * 5382: function extFileFields($table) - * 5403: function getUniqueFields($table) - * 5428: function isReferenceField($conf) - * 5439: function getInlineFieldType($conf) - * 5462: function getCopyHeader($table,$pid,$field,$value,$count,$prevTitle='') - * 5491: function prependLabel($table) - * 5508: function resolvePid($table,$pid) - * 5538: function clearPrefixFromValue($table,$value) - * 5553: function extFileFunctions($table,$field,$filelist,$func) - * 5583: function noRecordsFromUnallowedTables($inList) - * 5609: function notifyStageChange($stat,$stageId,$table,$id,$comment) - * 5704: function notifyStageChange_getEmails($listOfUsers,$noTablePrefix=FALSE) + * 5035: function getSortNumber($table,$uid,$pid) + * 5108: function resorting($table,$pid,$sortRow, $return_SortNumber_After_This_Uid) + * 5139: function setTSconfigPermissions($fieldArray,$TSConfig_p) + * 5156: function newFieldArray($table) + * 5188: function addDefaultPermittedLanguageIfNotSet($table,&$incomingFieldArray) + * 5212: function overrideFieldArray($table,$data) + * 5228: function compareFieldArrayWithCurrentAndUnset($table,$id,$fieldArray) + * 5274: function assemblePermissions($string) + * 5291: function rmComma($input) + * 5301: function convNumEntityToByteValue($input) + * 5323: function destPathFromUploadFolder($folder) + * 5333: function deleteClause($table) + * 5349: function getTCEMAIN_TSconfig($tscPID) + * 5364: function getTableEntries($table,$TSconfig) + * 5377: function getPID($table,$uid) + * 5390: function dbAnalysisStoreExec() + * 5406: function removeRegisteredFiles() + * 5418: function removeCacheFiles() + * 5432: function int_pageTreeInfo($CPtable,$pid,$counter, $rootID) + * 5453: function compileAdminTables() + * 5470: function fixUniqueInPid($table,$uid) + * 5506: function fixCopyAfterDuplFields($table,$uid,$prevUid,$update, $newData=array()) + * 5531: function extFileFields($table) + * 5552: function getUniqueFields($table) + * 5577: function isReferenceField($conf) + * 5588: function getInlineFieldType($conf) + * 5611: function getCopyHeader($table,$pid,$field,$value,$count,$prevTitle='') + * 5640: function prependLabel($table) + * 5657: function resolvePid($table,$pid) + * 5687: function clearPrefixFromValue($table,$value) + * 5702: function extFileFunctions($table,$field,$filelist,$func) + * 5732: function noRecordsFromUnallowedTables($inList) + * 5758: function notifyStageChange($stat,$stageId,$table,$id,$comment) + * 5853: function notifyStageChange_getEmails($listOfUsers,$noTablePrefix=FALSE) * * SECTION: Clearing cache - * 5750: function clear_cache($table,$uid) - * 5860: function clear_cacheCmd($cacheCmd) + * 5899: function clear_cache($table,$uid) + * 6009: function clear_cacheCmd($cacheCmd) * * SECTION: Logging - * 5966: function log($table,$recuid,$action,$recpid,$error,$details,$details_nr=-1,$data=array(),$event_pid=-1,$NEWid='') - * 5983: function newlog($message, $error=0) - * 5993: function printLogErrorMessages($redirect) + * 6113: function log($table,$recuid,$action,$recpid,$error,$details,$details_nr=-1,$data=array(),$event_pid=-1,$NEWid='') + * 6130: function newlog($message, $error=0) + * 6140: function printLogErrorMessages($redirect) * - * TOTAL FUNCTIONS: 123 + * SECTION: Internal (do not use outside Core!) + * 6202: function internal_clearPageCache() + * + * TOTAL FUNCTIONS: 126 * (This index is automatically created/updated by the extension "extdeveval") * */ @@ -855,13 +860,13 @@ $remapAction['args'][$remapAction['pos']['valueArray']] = $valueArray; } - // process the arguments with the defined function + // process the arguments with the defined function $remapAction['args'][$remapAction['pos']['valueArray']] = call_user_func_array( array($this, $remapAction['func']), $remapAction['args'] ); - // @TODO: Add option to disable count-field + // @TODO: Add option to disable count-field $newVal = $this->checkValue_checkMax($tcaFieldConf, $remapAction['args'][$remapAction['pos']['valueArray']]); $this->updateDB($table,$id,array($field => implode(',', $newVal))); } @@ -1179,7 +1184,7 @@ // Getting config for the field $tcaFieldConf = $TCA[$table]['columns'][$field]['config']; - +//debug(array('$field'=>$field), 'checkValue'); // Preform processing: $res = $this->checkValue_SW($res,$value,$tcaFieldConf,$table,$id,$curValue,$status,$realPid,$recFID,$field,$this->uploadedFileArray[$table][$id][$field],$tscPID); @@ -1229,7 +1234,7 @@ break; case 'inline': $res = $this->checkValue_inline($res,$value,$tcaFieldConf,$PP,$field); - break; + break; case 'flex': if ($field) { // FlexForms are only allowed for real fields. $res = $this->checkValue_flex($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field); @@ -1801,7 +1806,6 @@ unset($res['value']); } elseif($value || t3lib_div::testInt($id)) { $newValueArray = $this->checkValue_group_select_processDBdata($valueArray,$tcaFieldConf,$id,$status,'inline', $table); - // Checking that the number of items is correct $newVal = $this->checkValue_checkMax($tcaFieldConf, $newValueArray); $res['value'] = implode(',',$newVal); @@ -2710,7 +2714,7 @@ // Traverse record and input-process each value: foreach($fieldArray as $field => $fieldValue) { if (isset($TCA[$table]['columns'][$field])) { - // Evaluating the value. + // Evaluating the value. $res = $this->checkValue($table,$field,$fieldValue,$id,'new',$realPid,0); if (isset($res['value'])) { $fieldArray[$field] = $res['value']; @@ -3497,6 +3501,13 @@ /** * Call back function for deleting file relations for flexform fields in records which are being completely deleted. + * + * @param [type] $dsArr: ... + * @param [type] $dataValue: ... + * @param [type] $PA: ... + * @param [type] $structurePath: ... + * @param [type] $pObj: ... + * @return [type] ... */ function deleteRecord_flexFormCallBack($dsArr, $dataValue, $PA, $structurePath, &$pObj) { @@ -4912,13 +4923,13 @@ if (is_array($TCA[$table]) && $id) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $table, 'uid='.intval($id)); if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { - // Traverse array of values that was inserted into the database and compare with the actually stored value: + // Traverse array of values that was inserted into the database and compare with the actually stored value: $errorString = array(); foreach($fieldArray as $key => $value) { - if ($this->checkStoredRecords_loose && !$value && !$row[$key]) { + if ($this->checkStoredRecords_loose && !$value && !$row[$key] || $TCA[$table]['columns'][$key]['config']['type'] == 'inline') { // Nothing... } elseif (strcmp($value,$row[$key])) { - $errorString[] = $key; + $errorString[] = $key . ' [' . $value . '/' . $row[$key] . ']'; } } @@ -6002,15 +6013,13 @@ switch($cacheCmd) { case 'pages': if ($this->admin || $this->BE_USER->getTSConfigVal('options.clearCache.pages')) { - if (t3lib_extMgm::isLoaded('cms')) { - $GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages',''); - } + $this->internal_clearPageCache(); } break; case 'all': if ($this->admin || $this->BE_USER->getTSConfigVal('options.clearCache.all')) { if (t3lib_extMgm::isLoaded('cms')) { - $GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages',''); + $this->internal_clearPageCache(); $GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection',''); } $GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_hash',''); @@ -6178,6 +6187,42 @@ exit; } } + + /***************************** + * + * Internal (do not use outside Core!) + * + *****************************/ + + /** + * Clears page cache. Takes into account file cache. + * + * @return void + */ + function internal_clearPageCache() { + if (t3lib_extMgm::isLoaded('cms')) { + $GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages',''); + if ($GLOBALS['TYPO3_CONF_VARS']['FE']['pageCacheToExternalFiles']) { + $cacheDir = PATH_site.'typo3temp/cache_pages'; + if (@is_dir($cacheDir) && false !== ($topDir = @opendir($cacheDir))) { + while (false !== ($dir = @readdir($topDir))) { + $curDirName = $cacheDir . '/' . $dir; + if (@is_dir($curDirName) && false !== ($curDir = @opendir($curDirName))) { + while (false != ($fname = @readdir($curDir))) { + $curFName = $curDirName . '/' . $fname; + if (@is_file($curFName)) { + @unlink($curFName); + } + } + } + closedir($curDir); + @rmdir($curDirName); + } + closedir($cacheDir); + } + } + } + } }