Файл: controllers/database.php
Строк: 125
<?php
if(file_exists("flatfile.php"))
{    
    if(!defined('SANTI_NAME'))
    {
        session_start();
        include("../config.php");
    }
    if (!isset($_SESSION['auth']))        
        die("0");
    include("flatfile.php");
}
else
{
    if(!defined('SANTI_NAME'))
    {
        die("0");
    }
    include("controllers/flatfile.php");
}
// db files//
define('pilots', 'auto_pilots.txt');
define('objects', 'alert_objects.txt');
define('notifiers', 'notifiers.txt');
//! db files//
// pilots db //
define('AP_ID', 0);
define('AP_TYPE', 1);
define('AP_NAME', 2);
define('AP_DATE', 3);
//! pilots db //
// objects db //
define('OBJ_ID', 0);
define('OBJ_OBJ', 1);
define('OBJ_TYPE', 2);
define('OBJ_INFO', 3);
define('OBJ_CRITICALITY', 4);
define('OBJ_STATUS', 5);
define('OBJ_TIME', 6);
//! objects db //
// notifiers db //
define('N_ID', 0);
define('N_LINK', 1);
define('N_TITLE', 2);
define('N_DATE', 3);
define('N_STATUS', 4);
//! notifiers db //
$db = new Flatfile();
$db->datadir = SANTI_SERVERPATH.'/'.SANTI_PATH.'/datas/db/';
//обработка AJAX запросов
if(isset($_POST['nd']))
    notifiers_delete(addslashes(htmlspecialchars(strip_tags(trim($_POST['nd'])))));
if(isset($_POST['oi']))
    objects_ignore(addslashes(htmlspecialchars(strip_tags(trim($_POST['oi'])))));
if(isset($_POST['oh']))
    objects_healed(addslashes(htmlspecialchars(strip_tags(trim($_POST['oh'])))));
if(isset($_POST['on']))
    objects_null(addslashes(htmlspecialchars(strip_tags(trim($_POST['on'])))));
if(isset($_POST['uf']))
    objects_add(htmlspecialchars(strip_tags($_POST['uf'])), 22, "добавление файла от утилиты", 1, 1);
//обработка AJAX запросов
function objects_add($obj, $type, $info, $criticality, $status) //добавляем объект
{
    global $db;
    $new_obj[OBJ_ID] = 0;
    $new_obj[OBJ_OBJ] = $obj;
    $new_obj[OBJ_TYPE] = $type;
    $new_obj[OBJ_INFO]  = $info;
    $new_obj[OBJ_CRITICALITY]  = $criticality;
    $new_obj[OBJ_STATUS]  = $status;
    $new_obj[OBJ_TIME]  = time();
    $newId = $db->insertWithAutoId(objects, OBJ_ID, $new_obj);
    if($type == 22)
        die("$newId");
}
function objects_get() // получаем все найденные объекты
{
    global $db;
    $allrows = $db->selectWhere(objects, NULL, -1, new OrderBy(OBJ_ID, DESCENDING, INTEGER_COMPARISON));
    return $allrows;
}
function objects_null($id) //обнуляем статус подозрительного объекта
{
    global $db;
    $db->updateSetWhere(objects, array(OBJ_STATUS => '0'), new SimpleWhereClause(OBJ_ID, '=', $id));
    die(1);
}
function objects_healed($id) //объект вылечен
{
    global $db;
    $db->updateSetWhere(objects, array(OBJ_STATUS => '1'), new SimpleWhereClause(OBJ_ID, '=', $id));
    die(1);
}
function get_objects_path($id) //получаем путь к файлу
{
    global $db;
    $rows = $db->selectWhere(objects, new SimpleWhereClause(OBJ_ID, '=', $id));
    return $rows[0][1];
}
function objects_ignore($id) //добавляем файл в игнорируемые
{
    global $db;
    $db->updateSetWhere(objects, array(OBJ_STATUS => '2'), new SimpleWhereClause(OBJ_ID, '=', $id));
    die(1);
}
function autopilots_add_time($autotype) //помечаем последнее время выполнения скрипта
{
    global $db;
    $nt = date('d-m-Y H:i:s',time());
    $db->updateSetWhere(pilots, array(AP_DATE => $nt), new SimpleWhereClause(AP_TYPE, '=', $autotype));
}
function autopilots_get_time($autotype) //получаем последнее время запуска автопилота
{
    global $db;
    $rows = $db->selectWhere(pilots, new SimpleWhereClause(AP_TYPE, '=', $autotype));
    return $rows[0][3];
}
function notifiers_add($link, $title, $date, $status) //добавляем уведомления
{
    global $db;
    $rows = $db->selectUnique(notifiers, N_LINK, $link);
    if(empty($rows))
    {
        $new_not[N_ID] = 0;
        $new_not[N_LINK] = $link;
        $new_not[N_TITLE] = $title;
        $new_not[N_DATE]  = $date;
        $new_not[N_STATUS]  = 0;
        $newId = $db->insertWithAutoId(notifiers, N_ID, $new_not);
    }
}
function notifiers_get($status = 0) //получаем уведомления
{
    global $db;
    $rows = $db->selectWhere(notifiers, new SimpleWhereClause(N_STATUS, '=', $status));
    return $rows;
}
function notifiers_delete($id) //убираем из видимых уведомления
{
    global $db;
    $db->updateSetWhere(notifiers, array(N_STATUS => '1'), new SimpleWhereClause(N_ID, '=', $id));
    die(1);
}
function get_alert_stat($criticality) //берем данные для построени графика
{
    global $db;
    $alerts = new AndWhereClause();
    $alerts->add(new SimpleWhereClause(OBJ_CRITICALITY, '=', $criticality, INTEGER_COMPARISON));
    $alerts->add(new SimpleWhereClause(OBJ_TIME, '>',  mktime('0','0','0', date("m"), date("d")-'30', date("Y")), INTEGER_COMPARISON));
    $result = $db->selectWhere(objects, $alerts);
    $stat_array = array();
    for($i = 0; $i < 30; $i++)
    {
        $stat_array[$i][0] = date('d-m-Y', mktime('0','0','0', date("m"), date("d")-(string)(30 - $i), date("Y")));
        $stat_array[$i][1] = 0;
    }
    foreach ($result as $stats)
    {
        for($ii = 0; $ii < 30; $ii++)
            if (($stat_array[$ii][0]) == (date('d-m-Y', $stats[6])))
                $stat_array[$ii][1] = $stat_array[$ii][1] + 1;
    }
    return $stat_array;
}
?>