'HandleCleanUp')); SDVA($HandleAuth, array('cleanup' => 'admin')); SDVA($CleanUpDirs, array( 'uploads' => 0, 'wiki.d' => 0, )); SDV($CleanUpKeepDays, 30); function HandleCleanUp($pagename, $auth="admin") { global $CleanUpDirs, $CleanUpKeepDays, $CleanUpKeepTime, $Now, $HTMLStartFmt, $HTMLEndFmt, $PageCacheDir, $PageListCacheDir; # ask for admin password if needed $page = RetrieveAuthPage($pagename,$auth,true,READPAGE_CURRENT); if(!$page) exit(); $CleanUpKeepTime = ($CleanUpKeepDays>0)? $Now-$CleanUpKeepDays*86400 : false; PrintFmt($pagename,$HTMLStartFmt); echo "

CleanUp

"; foreach($CleanUpDirs as $dir=>$enabled) { if($enabled) CleanUpDir($dir); } echo "Finished."; PrintFmt($pagename,$HTMLEndFmt); } function CleanUpDir($dir) { $fp = @opendir($dir); if (!$fp) { return; } global $CleanUpKeepTime, $LastModTime; echo "
$dir:
\n"; $cnt = 0; while ( ($file = readdir($fp)) !== false) { if ($file{0} == '.') continue; if (is_dir("$dir/$file")) { CleanUpDir("$dir/$file"); continue; } if ($LastModTime && substr($file, -6) == ',cache') { if(@filemtime("$dir/$file") >= $LastModTime) continue; } elseif (preg_match('/,(del-)?(\\d+)$/', $file, $m)) { if ($CleanUpKeepTime && (int)$m[2]>$CleanUpKeepTime) continue; } else continue; if ( @unlink("$dir/$file") ) { echo "$file deleted.
\n"; $cnt++; } else echo "**** $file NOT deleted.
\n"; } closedir($fp); echo "
$cnt files deleted.
"; @flush(); }