<?php
abstract class filesystem
{

// получаем путь в стиле *UNIX
static function unixpath($path)
{
return str_replace('\\','/',$path);
}

// создание папки с установкой прав на запись
static function mkdir($p)
{
if (@mkdir($p, 0777))
{
@chmod($p, 0777);
return true;
}
}

// рекурсивное удаление папки
static function rmdir($dir,$delete_this_dir=true)
{
$dir=realpath($dir);
$od=opendir($dir);
while ($rd=readdir($od)) {
if ($rd=='.' || $rd=='..')continue;
if (is_dir($dir.'/'.$rd))
{
self::rmdir($dir.'/'.$rd);
}
else 
{
chmod($dir.'/'.$rd, 0666);
unlink($dir.'/'.$rd);
}
}
closedir($od);
if ($delete_this_dir)
{
sleep(1);
chmod($dir, 0666);
return rmdir($dir);
}
else return true;
}

// получаем общий размер устаревших временных файлов
static function getOldTmpFilesSize()
{
$files = self::getOldTmpFiles();
$size = 0;
foreach ($files as $path) {
	$size += @filesize($path);
}
return $size;
}

// получаем список устаревших временных файлов в виде массива путей
static function getOldTmpFiles()
{
$yesterday = mktime(-24);
$files = array();
$dirs = array(H.'/sys/tmp');



$th_o = opendir(H.'/sys/themes');
while ($th_r = readdir($th_o)) {
if ($th_r{0}==='.')continue;
if (!is_dir(H.'/sys/themes/'.$th_r.'/tpl_cache'))continue;
$dirs[] = H.'/sys/themes/'.$th_r.'/tpl_cache';
}
closedir($th_o);

$count = count($dirs);
for ($i = 0;$i < $count ;$i++ ) {
$od = opendir($dirs[$i]);
while ($rd = readdir($od)) {
if ($rd{0}==='.')continue;
if (filemtime($dirs[$i].'/'.$rd) > $yesterday)continue;
$files[] = $dirs[$i].'/'.$rd;
}
closedir($od);
}


return $files;
}


}
?>