'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();
}