<?php
acms_header('Настройки ботов', 'management');
is_active_module('PRIVATE_GUESTBOOK');
/*
---------
База слов
---------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [intval(get('base_bot')), 1]) > 0){
get_check_valid();
$id = intval(get('base_bot'));
/*
-------------
Удалить слово
-------------
*/
if (db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `ID` = ? LIMIT 1", [intval(get('delete_b'))]) > 0){
db::get_set("DELETE FROM `GUESTBOOK_BOTS` WHERE `ID` = ?", [intval(get('delete_b'))]);
success('Успешно удалено');
redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
}
/*
-------------------
Редактировать слово
-------------------
*/
if (get('edit_b')){
$b = db::get_string("SELECT * FROM `GUESTBOOK_BOTS` WHERE `ID` = ? LIMIT 1", [intval(get('edit_b'))]);
if (isset($b['ID'])){
if (post('ok')) {
valid::create(array(
'BOT_MESSAGE' => ['message', 'text', [2, 5000], 'Слово/фраза', 0],
'BOT_REPLY' => ['reply', 'text', [0, 5000], 'Ответ на сообщение пользователя', 0],
'BOT_SEC' => ['sec', 'number', [0, 99999999999], 'Интервал']
));
if (BOT_MESSAGE != $b['MESSAGE'] && db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `MESSAGE` = ? LIMIT 1", [BOT_MESSAGE]) > 0){
error('Такое слово/фраза уже существует в базе слов ботов');
redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&edit_b='.$b['ID']);
}
db::get_set("UPDATE `GUESTBOOK_BOTS` SET `MESSAGE` = ?, `REPLY` = ?, `SEC` = ? WHERE `ID` = ? LIMIT 1", [BOT_MESSAGE, BOT_REPLY, BOT_SEC, $b['ID']]);
success('Изменения успешно приняты');
redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
}
?>
<div class='list'>
<form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&edit_b=<?=$b['ID']?>'>
<?=html::input('message', null, 'Введите слово или фразу, которую бот должен будет написать в гостевой', null, tabs($b['MESSAGE']), 'form-control-100', 'text', null, 'commenting')?>
<?=html::input('reply', null, 'Введите слово или фразу, на которую бот должен будет ответить в гостевой пользователю (если оставить поле пустым, то бот будет добавлять слово/фразу просто как сообщение по интервалу)', null, tabs($b['REPLY']), 'form-control-100', 'text', null, 'comment')?>
<?=html::select('sec', array(
10 => ['10 '.lg('секунд'), ($b['SEC'] == 10 ? "selected" : null)],
20 => ['20 '.lg('секунд'), ($b['SEC'] == 20 ? "selected" : null)],
30 => ['30 '.lg('секунд'), ($b['SEC'] == 30 ? "selected" : null)],
40 => ['40 '.lg('секунд'), ($b['SEC'] == 40 ? "selected" : null)],
50 => ['50 '.lg('секунд'), ($b['SEC'] == 50 ? "selected" : null)],
60 => ['1 '.lg('минута'), ($b['SEC'] == 60 ? "selected" : null)],
120 => ['2 '.lg('минуты'), ($b['SEC'] == 120 ? "selected" : null)],
180 => ['3 '.lg('минуты'), ($b['SEC'] == 180 ? "selected" : null)],
240 => ['4 '.lg('минуты'), ($b['SEC'] == 240 ? "selected" : null)],
300 => ['5 '.lg('минут'), ($b['SEC'] == 300 ? "selected" : null)],
600 => ['10 '.lg('минут'), ($b['SEC'] == 600 ? "selected" : null)],
900 => ['15 '.lg('минут'), ($b['SEC'] == 900 ? "selected" : null)],
1200 => ['20 '.lg('минут'), ($b['SEC'] == 1200 ? "selected" : null)],
1500 => ['25 '.lg('минут'), ($b['SEC'] == 1500 ? "selected" : null)],
1800 => ['30 '.lg('минут'), ($b['SEC'] == 1800 ? "selected" : null)],
2100 => ['35 '.lg('минут'), ($b['SEC'] == 2100 ? "selected" : null)],
2400 => ['40 '.lg('минут'), ($b['SEC'] == 2400 ? "selected" : null)],
2700 => ['45 '.lg('минут'), ($b['SEC'] == 2700 ? "selected" : null)],
3000 => ['50 '.lg('минут'), ($b['SEC'] == 3000 ? "selected" : null)],
3300 => ['55 '.lg('минут'), ($b['SEC'] == 3300 ? "selected" : null)],
3600 => ['1 '.lg('час'), ($b['SEC'] == 3600 ? "selected" : null)],
7200 => ['2 '.lg('часа'), ($b['SEC'] == 7200 ? "selected" : null)],
10800 => ['3 '.lg('часа'), ($b['SEC'] == 10800 ? "selected" : null)],
14400 => ['4 '.lg('часа'), ($b['SEC'] == 14400 ? "selected" : null)],
18000 => ['5 '.lg('часов'), ($b['SEC'] == 18000 ? "selected" : null)],
21600 => ['6 '.lg('часов'), ($b['SEC'] == 21600 ? "selected" : null)],
86400 => ['1 '.lg('день'), ($b['SEC'] == 86400 ? "selected" : null)]
), 'Интервал добавления', 'form-control-100-modify-select', 'clock-o')?>
<small><?=lg('По интервалу ответы на сообщения пользователей не добавляются. В таком случае ответ будет мгновенный')?></small><br /><br />
<?=html::button('button ajax-button', 'ok', 'save', 'Сохранить изменения')?>
<a class='button-o' href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>'><?=lg('Отмена')?></a>
</form>
</div>
<?
back('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
acms_footer();
}
}
/*
--------------
Добавить слова
--------------
*/
if (get('get') == 'add_b') {
if (post('ok')) {
valid::create(array(
'BOT_MESSAGE' => ['message', 'text', [2, 5000], 'Слово/фраза', 0],
'BOT_REPLY' => ['reply', 'text', [0, 5000], 'Ответ на сообщение пользователя', 0],
'BOT_SEC' => ['sec', 'number', [0, 99999999999], 'Интервал']
));
if (db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `MESSAGE` = ? LIMIT 1", [BOT_MESSAGE]) > 0){
error('Такое слово/фраза уже существует в базе слов ботов');
redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&get=add_b');
}
db::get_add("INSERT INTO `GUESTBOOK_BOTS` (`MESSAGE`, `REPLY`, `BOT_ID`, `SEC`) VALUES (?, ?, ?, ?)", [BOT_MESSAGE, BOT_REPLY, $id, BOT_SEC]);
success('Успешно');
redirect('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
}
?>
<div class='list'>
<form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&get=add_b'>
<?=html::input('message', null, 'Введите слово или фразу, которую бот должен будет написать в гостевой', null, null, 'form-control-100', 'text', null, 'commenting')?>
<?=html::input('reply', null, 'Введите слово или фразу, на которую бот должен будет ответить в гостевой пользователю (если оставить поле пустым, то бот будет добавлять слово/фразу просто как сообщение по интервалу)', null, null, 'form-control-100', 'text', null, 'comment')?>
<?=html::select('sec', array(
10 => ['10 '.lg('секунд'), 10],
20 => ['20 '.lg('секунд'), 20],
30 => ['30 '.lg('секунд'), 30],
40 => ['40 '.lg('секунд'), 40],
50 => ['50 '.lg('секунд'), 50],
60 => ['1 '.lg('минута'), 60],
120 => ['2 '.lg('минуты'), 120],
180 => ['3 '.lg('минуты'), 180],
240 => ['4 '.lg('минуты'), 240],
300 => ['5 '.lg('минут'), 300],
600 => ['10 '.lg('минут'), 600],
900 => ['15 '.lg('минут'), 900],
1200 => ['20 '.lg('минут'), 1200],
1500 => ['25 '.lg('минут'), 1500],
1800 => ['30 '.lg('минут'), 1800],
2100 => ['35 '.lg('минут'), 2100],
2400 => ['40 '.lg('минут'), 2400],
2700 => ['45 '.lg('минут'), 2700],
3000 => ['50 '.lg('минут'), 3000],
3300 => ['55 '.lg('минут'), 3300],
3600 => ['1 '.lg('час'), 3600],
7200 => ['2 '.lg('часа'), 7200],
10800 => ['3 '.lg('часа'), 10800],
14400 => ['4 '.lg('часа'), 14400],
18000 => ['5 '.lg('часов'), 18000],
21600 => ['6 '.lg('часов'), 21600],
86400 => ['1 '.lg('день'), 86400]
), 'Интервал добавления', 'form-control-100-modify-select', 'clock-o')?>
<small><?=lg('По интервалу ответы на сообщения пользователей не добавляются. В таком случае ответ будет мгновенный')?></small><br /><br />
<?=html::button('button ajax-button', 'ok', 'plus', 'Добавить')?>
<a class='button-o' href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>'><?=lg('Отмена')?></a>
</form>
</div>
<?
back('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL);
acms_footer();
}
/*
-----------
Список слов
-----------
*/
$column = db::get_column("SELECT COUNT(*) FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ?", [$id]);
$spage = spage($column, PAGE_SETTINGS);
$page = page($spage);
$limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;
?>
<div class='list-body'>
<div class='list-menu'>
<?=lg('База слов бота')?> <?=user::login($id, 0, 1)?>
</div>
<div class='list-menu'>
<a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&get=add_b' class='btn'><?=icons('plus', 15, 'fa-fw')?> <?=lg('Добавить слова')?></a>
</div>
</div>
<?
if ($column == 0){
html::empty('Пока нет слов', 'commenting');
}else{
?><div class='list-body'><?
}
$data = db::get_string_all("SELECT * FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ? ORDER BY `ID` DESC LIMIT ".$limit.", ".PAGE_SETTINGS, [$id]);
while ($list = $data->fetch()) {
?>
<div class='list-menu'>
<?=icons('commenting', 19, 'fa-fw')?> <b><?=lg('Слово/фраза')?>:</b> <?=tabs($list['MESSAGE'])?><br />
<?php if (str($list['REPLY']) > 0) : ?>
<?=icons('comment', 19, 'fa-fw')?> <b><?=lg('Будет отвечать на')?>:</b> <?=tabs($list['REPLY'])?><br />
<?php else : ?>
<?=icons('clock-o', 19, 'fa-fw')?> <b><?=lg('Интервал')?>:</b> <?=lg('каждые')?> <?=$list['SEC']?> <?=lg('секунд')?><br />
<?php endif ?>
<br />
<a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&edit_b=<?=$list['ID']?>' class='btn'><?=icons('pencil', 15, 'fa-fw')?> <?=lg('Редактировать')?></a>
<a href='/m/guestbook/bot_settings/?base_bot=<?=$id?>&<?=TOKEN_URL?>&delete_b=<?=$list['ID']?>' class='btn'><?=icons('times', 15, 'fa-fw')?> <?=lg('Удалить')?></a>
</div>
<?
}
if ($column > 0){
?></div><?
}
get_page('/m/guestbook/bot_settings/?base_bot='.$id.'&'.TOKEN_URL.'&', $spage, $page, 'list');
back('/m/guestbook/bot_settings/');
acms_footer();
}
/*
------------
Удалить бота
------------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [intval(get('delete')), 1]) > 0){
get_check_valid();
if (get('get') == 'delete_ok'){
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [0, intval(get('delete'))]);
db::get_set("DELETE FROM `GUESTBOOK_BOTS` WHERE `BOT_ID` = ?", [intval(get('delete'))]);
success('Пользователь убран из списка ботов');
redirect('/m/guestbook/bot_settings/');
}
?>
<div class='list'>
<?=lg('Вы действительно хотите убрать пользователя')?> <?=user::login(intval(get('delete')), 0, 1)?> <?=lg('из списка ботов')?>? <?=lg('Это приведет к удалению его базы слов')?><br /><br />
<a href='/m/guestbook/bot_settings/?delete=<?=intval(get('delete'))?>&get=delete_ok&<?=TOKEN_URL?>' class='button'><?=icons('trash', 17, 'fa-fw')?> <?=lg('Удалить')?></a>
<a href='/m/guestbook/bot_settings/' class='button-o'><?=lg('Отмена')?></a>
</div>
<?
back('/m/guestbook/bot_settings/');
acms_footer();
}
/*
-----------------
Активировать бота
-----------------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` = ? LIMIT 1", [intval(get('active')), 2]) > 0){
get_check_valid();
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [1, intval(get('active'))]);
success('Бот успешно активирован');
redirect('/m/guestbook/bot_settings/');
}
/*
-------------------
Деактивировать бота
-------------------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` = ? LIMIT 1", [intval(get('deactive')), 1]) > 0){
get_check_valid();
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [2, intval(get('deactive'))]);
success('Бот успешно деактивирован');
redirect('/m/guestbook/bot_settings/');
}
/*
--------------------
Отображать в онлайне
--------------------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? AND `BOT_GUESTBOOK_ONLINE` = ? LIMIT 1", [intval(get('online_on')), 1, 0]) > 0){
get_check_valid();
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK_ONLINE` = ? WHERE `ID` = ? LIMIT 1", [1, intval(get('online_on'))]);
success('Теперь пользователь будет выходить в онлайн при сообщениях в гостевой');
redirect('/m/guestbook/bot_settings/');
}
/*
-----------------------
Не отображать в онлайне
-----------------------
*/
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? AND `BOT_GUESTBOOK_ONLINE` = ? LIMIT 1", [intval(get('online_off')), 1, 1]) > 0){
get_check_valid();
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK_ONLINE` = ? WHERE `ID` = ? LIMIT 1", [0, intval(get('online_off'))]);
success('Теперь пользователь не будет выходить в онлайн при сообщениях в гостевой');
redirect('/m/guestbook/bot_settings/');
}
/*
---------------
Добавление бота
---------------
*/
if (get('get') == 'add') {
if (post('ok')) {
$id = intval(post('id'));
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? AND `BOT_GUESTBOOK` >= ? LIMIT 1", [$id, 1]) > 0){
error('Такой бот уже существует');
redirect('/m/guestbook/bot_settings/?get=add');
}
if (db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `ID` = ? LIMIT 1", [$id]) == 0){
error('Пользователь не найден');
redirect('/m/guestbook/bot_settings/?get=add');
}
db::get_set("UPDATE `USERS` SET `BOT_GUESTBOOK` = ? WHERE `ID` = ? LIMIT 1", [1, $id]);
success('Бот успешно добавлен');
redirect('/m/guestbook/bot_settings/');
}
?>
<div class='list'>
<form method='post' class='ajax-form' action='/m/guestbook/bot_settings/?get=add'>
<?=html::input('id', 'ID пользователя', null, null, null, 'form-control-50')?>
<?=html::button('button ajax-button', 'ok', 'plus', 'Добавить')?>
<a class='button-o' href='/m/guestbook/bot_settings/'><?=lg('Отмена')?></a>
</form>
</div>
<?
back('/m/guestbook/bot_settings/');
acms_footer();
}
?>
<div class='list'>
<a href='/m/guestbook/bot_settings/?get=add' class='btn'><?=icons('plus', 15, 'fa-fw')?> <?=lg('Добавить бота')?></a>
</div>
<?
$column = db::get_column("SELECT COUNT(*) FROM `USERS` WHERE `BOT_GUESTBOOK` >= ?", [1]);
$spage = spage($column, PAGE_SETTINGS);
$page = page($spage);
$limit = PAGE_SETTINGS * $page - PAGE_SETTINGS;
if ($column == 0){
html::empty('Пока нет ботов', 'gears');
}else{
?><div class='list-body'><?
}
$data = db::get_string_all("SELECT `ID`,`BOT_GUESTBOOK_ONLINE`,`BOT_GUESTBOOK` FROM `USERS` WHERE `BOT_GUESTBOOK` >= ? ORDER BY `ID` DESC LIMIT ".$limit.", ".PAGE_SETTINGS, [1]);
while ($list = $data->fetch()) {
?>
<div class='list-menu'>
<?=icons('gear', 19, 'fa-fw')?> <?=user::login($list['ID'], 0, 1)?><br /><br />
<a href='/m/guestbook/bot_settings/?base_bot=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('commenting', 15, 'fa-fw')?> <?=lg('База слов')?></a>
<?php if ($list['BOT_GUESTBOOK'] == 1) : ?>
<a href='/m/guestbook/bot_settings/?deactive=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('lock', 15, 'fa-fw')?> <?=lg('Деактивировать')?></a>
<?php else : ?>
<a href='/m/guestbook/bot_settings/?active=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('unlock', 15, 'fa-fw')?> <?=lg('Активировать')?></a>
<?php endif ?>
<a href='/m/guestbook/bot_settings/?delete=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('trash', 15, 'fa-fw')?> <?=lg('Удалить бота')?></a>
<?php if ($list['BOT_GUESTBOOK_ONLINE'] == 0) : ?>
<a href='/m/guestbook/bot_settings/?online_on=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('check', 15, 'fa-fw')?> <?=lg('Отображать в онлайне')?></a>
<?php else : ?>
<a href='/m/guestbook/bot_settings/?online_off=<?=$list['ID']?>&<?=TOKEN_URL?>' class='btn'><?=icons('times', 15, 'fa-fw')?> <?=lg('Не отображать в онлайне')?></a>
<?php endif ?>
</div>
<?
}
if ($column > 0){
?></div><?
}
get_page('/m/guestbook/bot_settings/?', $spage, $page, 'list');
back('/m/guestbook/');
acms_footer();