Файл: sysadm/cron_sql.php
Строк: 83
<?
define('ROOT','../');
require_once (ROOT.'system/power.php');
$fuser->aut();
if($admin->user_can('settings_site',$ya['id'],true));
$diz -> head('Система CRON');
$diz -> title('Система CRON');
switch($do){
case 'cron':
if (!isset($_POST['submit'])) {
echo'<div class="fon"><form action="cron.php?do=cron" method="post">
Укажите время между чистками в секундах(не менее 86400 и не более 2592000):<br/><input type="text" name="cron" value="'.$nastr['cron'].'" maxlength="40"/><br/>
<input type="submit" name="submit" value="Изменить"/></form>
</div>';
}else{
$time=intval(abs($_POST['cron']));
if($time>=86400 and $time<=2592000){
$db->query("UPDATE `settings` SET `parametr`=".$time." where `name`='cron' LIMIT 1");
}
header('Location: cron.php?do=cron');
}
echo '<div class="levo"><a href="cron.php" class="levo_tuch">'.$diz -> img('back.png').' Система CRON</a></div>';
break;
case 'clear':
if(!isset($_GET['true'])){
echo'<div class="fon">Вы действительно желаете выполнить очистку БД сейчас?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=clear&true">Да</a>
<a class="dialog_m" href="?">Нет</a>
</div>';
}else{
/////////Удаление старых писем (больше недели)
$db -> query("DELETE FROM `mail` WHERE `read`<>'save' and `time` < '".(time()-604800)."'");
/////////Удаление старых событий (больше недели)
$db -> query("DELETE FROM `lenta` WHERE `time` < '".(time()-604800)."'");
/////////Удаление старых запросов на восстановление пароля
$db -> query("DELETE FROM `report` WHERE `type`='lost' and `time` < '".(time()-259200)."'");
/////////Удаление старых запросов на подтверждение email
$db -> query("DELETE FROM `report` WHERE `type`='act_email' and `time` < '".(time()-86400)."'");
//Удаление рекламы
$db -> query("DELETE FROM `reklama` WHERE `time` < '".time()."'");
///удаляем пустые диалоги
$db -> query("DELETE FROM dialogs WHERE dialogs.id NOT IN (SELECT mail.dialog FROM mail)");
///Разбан пользователей
$db -> query("DELETE FROM `ban` WHERE `bantime` < '".time()."'");
//обновляем время крона
$db->query("UPDATE `settings` SET `parametr`=".($nastr['cron']+time())." where `name`='crontime' LIMIT 1");
header('Location: ?');
}
break;
default:
echo '<div class="fon"/>В данном разделе можно посмотреть следующую автоматическую чистку БД. Так же выполнить это вручную.</div>';
echo '<div class="new"/>Автоматическая чистка будет: '.$func -> times(date('d m Y в H:i:s',$nastr['crontime'])).'<br/>
Последняя чистка БД была: '.$func -> times(date('d m Y в H:i:s',$nastr['crontime']-$nastr['cron'])).'<br/>
Промежуток между чистками: '.$func->ontime($nastr['cron']).'</div>';
echo '<div class="levo"><a href="?do=clear" class="levo_tuch">'.$diz -> img('r.png').' Выполнить чистку сейчас</a></div>';
echo '<div class="levo"><a href="?do=cron" class="levo_tuch">'.$diz -> img('r.png').' Изменить промежуток между чистками</a></div>';
echo '<div class="new"/>Общие сведения</div>';
$mail = $db -> dbcount('COUNT(`id`)','mail',"`read`<>'save' and `time` < '".(time()-604800)."'");
$ban = $db -> dbcount('COUNT(`id`)','ban',"`bantime` < '".time()."'");
$dil_del=$db -> query("SELECT id FROM dialogs WHERE dialogs.id NOT IN (SELECT mail.dialog FROM mail)")->num_rows;
$lost = $db -> dbcount('COUNT(`id`)','report',"`type`='lost' and `time` < '".(time()-259200)."'");
$act_email = $db -> dbcount('COUNT(`id`)','report',"`type`='act_email' and `time` < '".(time()-86400)."'");
$lenta = $db -> dbcount('COUNT(`id`)','lenta',"`time` < '".(time()-604800)."'");
$all=$mail+$lenta+$ban+$lost+$dil_del;
echo '<div class="fon"/>
Всего записей на удаление: <b>'.$all.'</b><hr>
Диалогов на удаление: <b>'.$dil_del.'</b><br/>
Пользователей на разбан: <b>'.$ban.'</b><br/>
Заявок восстановления пароля на удаление: <b>'.$lost.'</b><br/>
Заявок подтверждения email: <b>'.$act_email.'</b><br/>
Событий в ленте на удаление: <b>'.$lenta.'</b>
</div>';
}
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> img('back.png').' Админка</a></div>';
echo '<div class="levo"><a href="/index.php" class="levo_tuch">'.$diz -> img('home.png').' На главную</a></div>';
#####Копирайт#######
$diz -> out($msg);
?>