Файл: 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;
}
?>